在我的代码中,我有一个调用 JS 文件的按钮,该文件又调用一个 PHP 文件,该文件具有我需要生成证书的 API 端点,并将我在下面的证书变量中使用的响应发回。
我正在使用 openssl 命令自己生成 CSR。
我在浏览器上安装证书的代码如下(证书是我将证书作为从 Entrust API 获得的响应传递的地方)-
我正在使用此页面上的代码 - https://blogs.msdn.microsoft.com/alejacma/2009/01/28/how-to-create-a-certificate-request-with-certenroll-javascript/(正下方的第二个灰色块- 以下 Javascript 示例显示了如何安装来自 CA 的响应)
function installCertificate(certificate) {
try {
var objEnroll = objCertEnrollClassFactory.CreateObject("X509Enrollment.CX509Enrollment");
objEnroll.Initialize(1); // ContextUser
objEnroll.InstallResponse(0, certificate, 6, "");
} catch (ex) {
swal('Error', 'Something went wrong installing Client Certificate', 'error');
console.log("exception- " + ex.description);
}
}
我遇到的错误是(来自 catch 块)-
CertEnroll::CX509Enrollment::InstallResponse: Cannot find object or property. 0x80092004 (-2146885628 CRYPT_E_NOT_FOUND)
我不确定无法找到对象或属性是什么意思,因为它不太冗长。
PS:如果我将来自 API 的响应保存为 .crt 文件并打开它(只需双击),证书值和证书链看起来都是正确的。