2014-09-10 2 views
0

Я пытаюсь импортировать/устанавливать сертификат клиента в 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 на низкий, но это не помогло. Ручная установка сертификата в хранилище частных сертификатов пользователей отлично работает.

Любая помощь очень ценится.

+0

Вам удалось также импортировать pfx с javascript? – madduci

ответ

0

После двух дней исследований в сети, я наконец узнал, как заставить этот скрипт работать. Единственное решение, которое я нашел для IE 11, - включить следующий параметр в окне настроек IE.

ActiveX settings

0

Я удивлен, что это работает для Вас!

я обнаружил, что я должен был изменить параметр restrictions (3 в вашем примере), чтобы быть или 0 или 4. Это основано на документации MSDN на https://msdn.microsoft.com/en-us/library/windows/desktop/aa378051(v=vs.85).aspx:

E_ACCESSDENIED

Этот метод был вызван из Интернета, а параметр AllowNoOutstandingRequest или AllowUntrustedCertificate указан в параметре Ограничения.

Смежные вопросы