Подтвердить что ты не робот

Получить отпечаток сертификата сервера HTTPS из командной строки?

Недавно Mercurial добавил проверку сертификата при подключении к серверам HTTPS. Я пытаюсь клонировать хранилище вики для проекта googlecode по адресу https://wiki.pydlnadms.googlecode.com/hg/, но сертификат предназначен для *.googlecode.com. У меня сложилось впечатление, что это называется подстановочным доменом и действует для всех поддоменов, но я получаю сообщение об ошибке:

[email protected]:~/src$ hg clone https://wiki.pydlnadms.googlecode.com/hg/ pydlnadms-wiki
abort: wiki.pydlnadms.googlecode.com certificate error: certificate is for *.googlecode.com

Якобы мне нужно добавить отпечаток сертификата на мой hgrc. Как получить этот отпечаток из командной строки?

Вопрос для родителей: Размещение изображений в Google Code

4b9b3361

Ответ 1

На странице http://wiki.debuntu.org/wiki/OpenSSL#Retrieving_certificate_informations перечислены командные строки для этого (и распечатка соответствующей информации). С этой страницы и некоторых страниц руководства кажется, что вы хотите (для bash):

openssl s_client -connect <host>:<port> < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout -in /dev/stdin

Если вам нужен весь сертификат, оставьте символ | и все после него.

Ответ 2

это тоже достаточно:

openssl x509 -fingerprint -in server.crt

Ответ 3

Это старый поток, но есть более простой способ найти. Предполагая, что у вас есть файл crt:

$ cat server.crt|openssl x509 -fingerprint 
MD5 Fingerprint=D1:BA:B0:17:66:6D:7F:42:7B:91:1E:22:7E:3A:27:D2

Ответ 4

Фон

Начиная с Mercurial 3.9, Mercurial требует более безопасного отпечатка пальца SHA-256, в отличие от SHA-1 из предыдущих версий. Ответ Иеремии объясняет, как вычислить отпечаток SHA-1. Как отмечено в комментарии J.Money, теперь нужно добавить флаг -sha256 чтобы получить правильный fingerprint.

Новая команда:

openssl s_client -connect <host>:<port> < /dev/null 2>/dev/null | openssl x509 -fingerprint -sha256 -noout -in /dev/stdin

где <host>:<port> следует заменить соответствующим образом. (Чтобы ответить на исходный вопрос, можно использовать wiki.pydlnadms.googlecode.com:443, как отметил yanokwa.) Вы должны опустить https:// в URL-адресе, в противном случае вы получите ошибку Expecting: TRUSTED CERTIFICATE.

Затем можно добавить полученный отпечаток SHA-256 в файл глобальных настроек Mercurial (~/.hgrc).