ssl - 如何在windows上注册个人证书?

标签 ssl certificate visual-c++

我想在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/

相关文章:

php - cURL 和 SSL,connect() 超时

javascript - 使用 SSL 运行的应用程序在第一次访问时未加载所有脚本/CSS

certificate - 从cmd导入.cer证书

c++ - 在常数时间内初始化 C++ 数组

iphone - iPhone 中行 Tcp/Ip 的 SSL 客户端

apache - 使用 Apache 将多个站点与一个启用 SSL 的站点结合使用

android - 导出后证书指纹不匹配

ios - 获取 SSL 证书详细信息

visual-c++ - 像在 msvc (visual c++) 中一样在 emacs 中打开包含文件

c++ - 'extern' 关键字有问题