Как работает аутентификация стартов на сайте ssl.com? - PullRequest
1 голос
/ 17 сентября 2011

Startssl.com, который предоставляет бесплатные сертификаты SSL класса 1, использует очень уникальную и простую систему аутентификации. В процессе входа в систему он перенаправляет клиента на https://auth.startssl.com/, и браузер запрашивает их уникальный сертификат. После завершения этого этапа они перенаправляются на панель управления без аутентификации по имени пользователя и паролю.

cert request

Я даже не подозревал, что HTTP (ы) могут сделать этот тип аутентификации изначально!

Я пытался использовать curl для анализа этого запроса, но я не могу получить запрос HTTPS со значением.

X:~ ken$ curl https://auth.startssl.com/ --cert ./startssl-id.crt 
curl: (58) unable to set private key file: './startssl-id.crt' type PEM

Поддерживает ли curl этот тип HTTPS-соединения, и если да, то как его настроить на стороне сервера и клиента?

Ответы [ 2 ]

1 голос
/ 17 сентября 2011

Вы используете клиентский сертификат. Для отслеживания трафика ваш пользовательский агент должен поддерживать клиентские сертификаты. Если вы просто хотите наблюдать за сетевым трафиком, вы можете посмотреть журнал сетевого трафика вашего браузера, но он не будет включать согласование сертификата.

curl поддерживает сертификаты на стороне клиента. Вы используете их так:

curl --cert mycert.pem https://secure.example.com

Если вы действительно хотите разобраться с мелочами при согласовании пакетов, вам лучше всего использовать wireshark для разбора пакетов.

Документы для настройки этого в Apache находятся здесь:

http://httpd.apache.org/docs/2.0/ssl/ssl_howto.html#accesscontrol

0 голосов
/ 23 сентября 2014

На этой странице вы найдете инструкции по добавлению проверки подлинности сертификата клиента в любое веб-приложение:

https://www.scriptjunkie.us/2013/11/adding-easy-ssl-client-authentication-to-any-webapp/

, как для того, чтобы сертификаты клиента работали с curl - вам, вероятно, потребуетсяпреобразовать сертификат из формата pkcs12 в простой закрытый ключ и сертификат, используя openssl, я сделал это:

openssl pkcs12 -CApath /etc/ssl/certs -in startcom.p12 -out start.pem -info -nodes

, где startcom.p12 был экспортирован из Firefox (у меня нет Mac, поэтому могу 't test с Safari).

и тогда я могу:

openssl s_client -connect auth.startssl.com:443 -CApath /etc/ssl/certs/ -cert /tmp/start.pem -key /tmp/start.key -prexit -debug -msg -state -servername auth.startssl.com -tlsextdebug

, который подключается, и:

wget --verbose --debug --ca-directory=/etc/ssl/certs/ --certificate=/tmp/start.pem --private-key=/tmp/start.key  https://auth.startssl.com/

также работает.

...