Как зарегистрировать личный сертификат на 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, который имеет как открытый, так и закрытый ключи. И чтобы установить это, вы можете просто дважды щелкнуть файл, затем нажать установить сертификат, затем просто завершить работу мастера импорта, и он автоматически сохранит сертификат в вашей "Личной" папке вашего хранилища ключей.

Другие вопросы по тегам