Функцията, която е внедрена, можете да видите в github project, работата е там, че е все още не е включено в действителната стабилна версия (2.0.0), но е планирано да бъде включено в 2.0. 1 версия. Междувременно можете да изтеглите компилация 2.0.1 от тук (връзката е от 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
извличам сертификата и личния ключ, като използвам следните команди:
Извлечете сертификат за --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
, за да избегна конфигурацията на доверителното хранилище за валидиране на сертификата на сървъра.
Като скрипт използвам test.js, който съдържа същото като OP шоу на въпроса:
page = require('webpage').create()
page.open('https://myproject', function(status) {
page.render('C:/temp/connect.png');
console.log(status);
phantom.exit();
})
person
albciff
schedule
06.11.2015