这样的问题:我需要在我的安装(维克斯3.5)导入的.pfx证书。 我需要接受导入它们没有任何(!)用户交互,甚至验收规范(需要先所以testion建筑服务器和测试makets)
试图标准WiX的解决方案,使用WiXIISExtension
,但安静(静音)进口的选项。
试图在C ++(从维克斯DLL延迟定制操作),这样的解决方案:
链PfxImportCertStore - CertEnumCertificatesStore - CertAddCertificateContextToStore
:证书管理要求验收规范...
CryptUIWizImport
与标志CRYPTUI_WIZ_NO_UI
:CryptoAPI的试图访问一个私钥,经理要求验收规范...
是否有解决这个的方法吗? 或者我真的需要编写验收规范的定制服务? 这是不是很爽?
好吧,我解决我的问题。 在我的情况下,它是用户保护的证书......只是我的假的只是标志......可是,就在这两天,我意识到:
如果有人需要工作导入了不同的证书编码的很好的例子PS我评论
我尝试添加根信任位置的自签名证书时,同样的问题。 它促使我的安全警告。
安全警告
用下面的代码,我现在可以默默添加自签名证书的根信任的位置。
HCERTSTORE hUIRootCertStore = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, NULL, CERT_SYSTEM_STORE_LOCAL_MACHINE, L"Root");
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"<certificate file>";
importSrc.pwszPassword = L"<your password>";
importSrc.dwFlags = CRYPT_EXPORTABLE;
bRet = CryptUIWizImport(CRYPTUI_WIZ_NO_UI | CRYPTUI_WIZ_IMPORT_TO_LOCALMACHINE, NULL, NULL, &importSrc, hUIRootCertStore);
如果有任何其他方法,请告诉我。