Получить отпечаток сертификата сервера 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
Ответы
Ответ 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
).