我想在windows上注册一个个人证书,这样web服务器就可以验证客户端的身份。这是我的代码(我很难找到例子,所以我不知道是否正确):
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 浏览器的设置中看不到它。 我该如何解决这个问题?请告诉我。谢谢。
最佳答案
.crt 文件不包含私钥,要使其正常工作,您可能需要安装一个同时具有公钥和私钥的 .pfx 文件。要安装它,您只需双击该文件,然后单击安装证书,然后只需完成导入向导,它就会自动将证书存储在您 keystore 的“个人”文件夹下。
关于ssl - 如何在windows上注册个人证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20048651/