导入客户端证书在IE浏览器中使用javascript
问题描述:
我试图导入/安装客户端证书到IE中,但我在我的js代码中收到以下错误。导入客户端证书在IE浏览器中使用javascript
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)的restrictions
参数是0或4.这是基于MSDN文档上在https://msdn.microsoft.com/en-us/library/windows/desktop/aa378051(v=vs.85).aspx:
E_ACCESSDENIED
此方法从网络调用,AllowNoOutstandingRequest或AllowUntrustedCertificate已在限制参数中指定。
你是否管理过还用javascript导入pfx? – madduci 2017-04-05 12:29:30