gpt4 book ai didi

javascript - 尝试使用 JS 在浏览器上安装证书时出错

转载 作者:太空宇宙 更新时间:2023-11-03 14:24:03 25 4
gpt4 key购买 nike

在我的代码中,我有一个调用 JS 文件的按钮,该文件又调用一个 PHP 文件,该文件具有生成证书所需的 API 端点,并发回我在 certificate 下面的变量。

我正在使用 openssl 命令自行生成 CSR。

我在浏览器上安装证书的代码如下(certificate 是我传递证书作为从 Entrust API 获得的响应的地方)-

我正在使用此页面的代码- https://blogs.msdn.microsoft.com/alejacma/2009/01/28/how-to-create-a-certificate-request-with-certenroll-javascript/ (正下方的第二个灰色 block - 下面的 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 block )-

CertEnroll::CX509Enrollment::InstallResponse: Cannot find object or property. 0x80092004 (-2146885628 CRYPT_E_NOT_FOUND)

我不确定“找不到对象或属性”是什么意思,因为它不太冗长。

PS:如果我将来自 API 的响应保存为 .crt 文件并打开它(只需双击),证书值和证书链看起来都是正确的。

最佳答案

经过大量拖网,我终于成功了。对于任何想知道的人,这是我的解决方案-

生成 CSR 的代码部分是此页面上的第一个灰色 block - https://blogs.msdn.microsoft.com/alejacma/2009/01/28/how-to-create-a-certificate-request-with-certenroll-javascript .

它返回的 CSR 在顶部有一个 -----BEGIN NEW CERTIFICATE REQUEST----------END NEW CERTIFICATE REQUEST- ---- 在底部,每行后都有换行符

我使用 preg_replace 删除了顶行和所有换行符,如下所示,此时 CSR 没有换行符,只是一个简单的字符串,我使用 str_replace 删除了它的最后一部分。

$csr = preg_replace('/^.+\n/', '', $csr);  
$csr = str_replace("-----END NEW CERTIFICATE REQUEST-----","", $csr);

TLDR- 删除了 CSR 的顶部和底部线以及那里的所有换行符。我认为这与 CSR 的格式有关。

关于javascript - 尝试使用 JS 在浏览器上安装证书时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58399416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com