каков правильный способ подачи ssl-сертификата в phantomjs
мне нужно получить доступ к внутреннему сайту, защищенному сертификатами на стороне клиента. Поэтому для использования phantomjs я экспортировал сертификат, который я использую в Firefox для доступа к сайту, и преобразовал его в закрытый ключ и сертификат с помощью командной строки openssl. Я теперь, что phantomjs представить этот сертификат на сервер ssl при доступе к странице на сервере. Как мне это сделать?
Я пробовал это
phantomjs --ssl-certificates-path=/etc/pki --ignore-ssl-errors=yes --proxy=myproxy:myport test.js
С /etc/pki-это путь, по которому я поместил сертификат и ключ
3 ответов
Я тоже ищу решение. он не реализован https://github.com/ariya/phantomjs/issues/10524
"-- ssl-certificates-path " - используется для сертификата CA
функция реализована вы можете увидеть на проект github, дело в том, что он еще не включен в фактический стабильный релиз (2.0.0), однако его планируется включить в 2.0.1 версия. Тем временем вы можете скачать 2.0.1 build из здесь (ссылка из обсуждения git).
Я пытаюсь использовать 2.0.1
версия, и я могу получить доступ к сайту, правильно пройдя авторизацию клиента SSL с помощью выполните команду:
наконец-то новая PhantomJS 2.1
версия была выпущена, которая включает в себя эту функцию, вы можете скачать с здесь и проверьте авторизацию клиента SSL, используя следующую команду:
phantomjs --ssl-client-certificate-file=C:\tmp\clientcert.cer
--ssl-client-key-file=C:\tmp\clientcert.key
--ssl-client-key-passphrase=1111
--ignore-ssl-errors=true
C:\tmp\test.js
Примечания
Я тестирую это только в Windows.
Я пытаюсь использовать PKCS12
файл как хранилище ключей, но кажется, что с этим форматом не работает, поэтому использование openssl
я извлекаю сертификат и закрытый ключ, используя следуйте командам:
экстракт CERT на --ssl-client-certificate-file
параметр
openssl pkcs12 -nokeys -clcerts -in a.p12 -out clientcert.cer
извлечь ключ для --ssl-client-key-file
параметр
openssl pkcs12 -nocerts -in a.p12 -out clientcert.key
дополнительно я использую --ignore-ssl-errors=true
чтобы избежать настройки хранилища доверия для проверки сертификата сервера.
в качестве скрипта я использую
поддержка сертификата клиента фактически была реализована с момента первоначального принятого ответа. Я публикую это, чтобы помочь другим, кто также наткнется на этот вопрос. Вы можете найти параметры для включения поддержки сертификатов X509/PKI в инструкции CLI PhantomJS:
phantomjs --ssl-certificates-path=/path/to/pki/rootCA.pem
--ssl-client-certificate-file=/path/to/pki/cert.pem
--ssl-client-key-file=/path/to/pki/cert.np.key