Как зарегистрировать личный сертификат на windows?
Я хочу зарегистрировать личный сертификат в Windows, чтобы веб-сервер мог проверить личность клиента. Вот мой код (мне трудно найти пример, поэтому я не знаю, прав он или нет):
char* pfile = "d:/client.crt";
FILE* fp = fopen(pfile, "r");
char ch;
char buf[10000] = {0};
int i = 0;
while ((ch = fgetc(fp)) != EOF) {
memcpy(buf+i, &ch, 1);
i++;
}
BYTE pBinByte[8192] = {0};
unsigned long binBytes = 8192;
//decode base64
CryptStringToBinaryA( buf, strlen(buf) ,CRYPT_STRING_BASE64HEADER , pBinByte , &binBytes ,NULL,NULL);
HCERTSTORE hMyCertStore = CertOpenSystemStore(NULL, _T("MY"));
int len = binBytes;
PCCERT_CONTEXT pCertContext = CertCreateCertificateContext(
MY_ENCODING_TYPE,
pBinByte,
len);
BOOL addOK = CertAddCertificateContextToStore(
hMyCertStore,
pCertContext,
CERT_STORE_ADD_REPLACE_EXISTING,
NULL);
CertFreeCertificateContext(pCertContext);
CertCloseStore(hMyCertStore, 0);
После того, как я запустил код в xp, он запустился успешно. И я могу найти сертификат в certmgr.msc. Но я не вижу этого в настройках браузера IE. Как я могу решить эту проблему? Пожалуйста, скажите мне. Благодарю.
1 ответ
Файл.crt не содержит закрытого ключа, и для этого вам может понадобиться установить файл.pfx, который имеет как открытый, так и закрытый ключи. И чтобы установить это, вы можете просто дважды щелкнуть файл, затем нажать установить сертификат, затем просто завершить работу мастера импорта, и он автоматически сохранит сертификат в вашей "Личной" папке вашего хранилища ключей.