Certificate 使用c+;将自签名证书从.cer文件安装到个人存储+;
我尝试通过两个步骤创建一个用于测试目的的证书。首先,我创建了一个自签名证书,它建立了我自己的证书颁发机构(CA)。第二,我使用该根证书对测试服务器证书进行签名,该证书将放在个人证书存储中。我打开管理命令提示符并输入以下内容: 第1步: MakeCert-pe-n“CN=TestCA”-b 01/01/2015-e 01/01/2020-ss my-sr currentuser-a sha256-sky签名-len 2048-r“TestCA.cer” 第二步: MakeCert-pe-n“CN=localhost”-b 01/01/2015-e 01/01/2020-eku 1.3.6.1.5.5.7.3.1-在“TestCA”中-是my-ir currentuser-ss my-sr currentuser-a sha256-sky exchange-sp“Microsoft RSA SChannel加密提供程序”-sy 12-len 2048“localhost.cer” 按照这些步骤,一切正常。之后,我尝试通过C++应用程序安装这些证书。当我在certmgr.msc中检查这些证书时,似乎没什么问题,然而,从那时起,客户端总是无法连接到服务器。从个人证书存储中删除证书“localhost”后,再次使用MakeCert.exe执行步骤2。客户端可以成功连接到服务器。也许我错过了一些重要的东西。如果有人知道,请给我一些建议。顺便说一下,我的客户机和服务器运行在同一台计算机上。我的代码如下所示Certificate 使用c+;将自签名证书从.cer文件安装到个人存储+;,certificate,cryptoapi,Certificate,Cryptoapi,我尝试通过两个步骤创建一个用于测试目的的证书。首先,我创建了一个自签名证书,它建立了我自己的证书颁发机构(CA)。第二,我使用该根证书对测试服务器证书进行签名,该证书将放在个人证书存储中。我打开管理命令提示符并输入以下内容: 第1步: MakeCert-pe-n“CN=TestCA”-b 01/01/2015-e 01/01/2020-ss my-sr currentuser-a sha256-sky签名-len 2048-r“TestCA.cer” 第二步: MakeCert-pe-n“CN=
HCERTSTORE hMyCertStore = NULL;
if(hMyCertStore = CertOpenStore(
CERT_STORE_PROV_SYSTEM, // The store provider type
0, // The encoding type is
// not needed
NULL, // Use the default HCRYPTPROV
CERT_SYSTEM_STORE_CURRENT_USER, // Set the store location in a
// registry location
L"MY" // The store name as a Unicode
// string
))
{
printf("The system store was created successfully.\n");
}
else
{
printf("An error occurred during creation "
"of the system store!\n");
exit(1);
}
CRYPTUI_WIZ_IMPORT_SRC_INFO importSrc;
memset(&importSrc, 0, sizeof(CRYPTUI_WIZ_IMPORT_SRC_INFO));
importSrc.dwSize = sizeof(CRYPTUI_WIZ_IMPORT_SRC_INFO);
importSrc.dwSubjectChoice = CRYPTUI_WIZ_IMPORT_SUBJECT_FILE;
importSrc.pwszFileName = L"C:\\Temp\\MakeCert\\localhost.cer";
importSrc.pwszPassword = L"";
importSrc.dwFlags = CRYPT_EXPORTABLE | CRYPT_USER_PROTECTED;
if (CryptUIWizImport(CRYPTUI_WIZ_NO_UI,
NULL,
NULL,
&importSrc,
hMyCertStore) == 0)
{
printf("CryptUIWizImport error %d\n", GetLastError());
}
任何帮助都将不胜感激
Clement我发现了MakeCert和我的应用程序之间的区别。通过MakeCert安装后,我打开了证书对话框的常规选项卡,然后我发现有一个字符串“您有一个与此证书相对应的私钥,但是使用我的应用程序,对话框中没有字符串。我想我在安装过程中错过了一些步骤。如果有人知道,请给我一些建议 谢谢
Clement我发现了MakeCert和我的应用程序之间的区别。通过MakeCert安装后,我打开了“证书”对话框的“常规”选项卡,然后我发现有一个字符串“您有一个与此证书对应的私钥,但使用我的应用程序时,对话框中没有字符串。我想我在安装过程中错过了一些步骤。如果有人知道,请给我一些建议 谢谢 克莱门特