使用javascript在IE中导入客户端证书
我试图将客户机证书导入/安装到IE中,但我的js代码中出现以下错误使用javascript在IE中导入客户端证书,javascript,internet-explorer,ssl,certificate,Javascript,Internet Explorer,Ssl,Certificate,我试图将客户机证书导入/安装到IE中,但我的js代码中出现以下错误 function ImportClientCertificate() { try { var objCertEnrollClassFactory = document.getElementById("objCertEnrollClassFactory"); var objEnroll = objCertEnrollClas
function ImportClientCertificate()
{
try {
var objCertEnrollClassFactory = document.getElementById("objCertEnrollClassFactory");
var objEnroll = objCertEnrollClassFactory.CreateObject("X509Enrollment.CX509Enrollment");
var sPKCS7 = "-----BEGIN CERTIFICATE-----" +
"MIIDADCCAmkCCQ..." +
"-----END CERTIFICATE-----"
objEnroll.Initialize(1);
//->this line causes the exception
objEnroll.InstallResponse(3, sPKCS7, 1, "correctpassword");
}
catch (ex) {
alert(ex.description);
/*Exception being thrown: CertEnroll::CX509Enrollment::InstallResponse: Access is denied. 0x80070005 (WIN32: 5 ERROR_ACCESS_DENIED)*/
}
}
这一例外的原因可能是什么?我已经尝试将IE中的安全级别设置为较低,但没有帮助。手动将证书安装到用户的私人证书存储中效果良好
非常感谢您的帮助。经过两天的网上研究,我终于找到了如何让这个脚本正常工作的方法。我为IE 11找到的唯一解决方案是在IE设置框中启用以下选项
我很惊讶这对你有用 我发现我必须将
限制
参数(在您的示例中为3)更改为0或4。这基于MSDN文档,网址为:
E_访问被拒绝
此方法是从web调用的,并且在限制参数中指定了AllowNoOutstandingRequest或AllowUntrustedCertificate
您是否也使用javascript导入了pfx?