В моем коде у меня есть кнопка, которая вызывает файл JS, который, в свою очередь, вызывает файл PHP с конечными точками API, которые мне нужны для генерации сертификата, и отправляет ответ, который я использую в сертификате * 1002. * переменная ниже.
Я сам генерирую CSR с помощью команды openssl.
Мой код для установки сертификата в браузере выглядит следующим образом ( сертификат - это то, где япередать сертификат в качестве ответа, который я получаю от API-интерфейсов Entrust) -
Я использую код этой страницы - https://blogs.msdn.microsoft.com/alejacma/2009/01/28/how-to-create-a-certificate-request-with-certenroll-javascript/ (2-й серый блок справа внизу - после примера 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 и открою его (простой двойной щелчок), значения сертификата будут выглядеть правильно вдольс цепочкой сертификатов.