В Chrome, нажав на зеленый значок блокировки HTTPS, открывается окно с информацией о сертификате:
Когда я попробовал то же самое с cURL, я получил только часть информации:
$ curl -vvI https://gnupg.org
* Rebuilt URL to: https://gnupg.org/
* Hostname was NOT found in DNS cache
* Trying 217.69.76.60...
* Connected to gnupg.org (217.69.76.60) port 443 (#0)
* TLS 1.2 connection using TLS_DHE_RSA_WITH_AES_128_CBC_SHA
* Server certificate: gnupg.org
* Server certificate: Gandi Standard SSL CA
* Server certificate: UTN-USERFirst-Hardware
> HEAD / HTTP/1.1
> User-Agent: curl/7.37.1
> Host: gnupg.org
> Accept: */*
Любая идея, как получить полную информацию о сертификате с помощью инструмента командной строки (cURL или другой)?
ssl
ssl-certificate
curl
Адам Матан
источник
источник
curl
с флагом--verbose
показывает полное содержание сертификата сервера.Ответы:
Вы должны быть в состоянии использовать OpenSSL для своих целей:
Эта команда подключается к нужному веб-сайту и передает сертификат в формате PEM другой команде openssl, которая считывает и анализирует детали.
(Обратите внимание, что «избыточный»
-servername
параметр необходим для выполненияopenssl
запроса с поддержкой SNI.)источник
OpenSSL> openssl:Error: 'CONNECTED(00000003)' is an invalid command.
openssl
противopenssl x509 -inform pem -noout -text
). То, что написал Педро, прекрасно работает для меня.echo
само по себе эквивалентноecho ''
.. он отправляет пустую строку в stdout.cat /dev/null |
будет работать также и немного более понятен.-text
на-enddate
, проверьте другие опции (openssl x509 help
).Простое решение
Это мой повседневный сценарий:
Выход:
источник
Зависит от того, какую информацию вы хотите, но:
должен дать вам больше всего, хотя не так хорошо читается человеком, как Chrome представляет.
источник
В
-p 443
указывает отсканировать только порт 443. Все порты будут сканироваться, если он пропущен, и будут отображаться сведения о сертификате для любой найденной службы SSL.--script ssl-cert
Говорит скриптовый движок Nmap для запуска толькоssl-cert
сценарий. Из документа этот скрипт «(r) извлекает SSL-сертификат сервера. Объем напечатанной информации о сертификате зависит от уровня детализации».Образец вывода:
источник
Чтобы проверить сведения о сертификате SSL, я использую следующий инструмент командной строки с момента его появления:
https://github.com/azet/tls_tools
Замечательно проверить еще раз, что у вас есть вся информация, правильная для повторной выдачи сертификатов или проверки существующих, а также как мало зависимостей И это не требует настройки.
Вот как выглядят первые несколько строк вывода:
За этим выводом следует вся цепочка сертификатов с одинаковым уровнем детализации.
Что мне нравится, вместо того, чтобы быть ориентированным на ssl инструментом для работы с клиентами, таким как s_client в openssl, этот пытается просто выполнить ту работу, которая нам нужна в большинстве случаев. Конечно, openssl более гибок (т.е. также проверяет клиентские сертификаты, изображения на нечетных портах и т. Д.), Но мне это не всегда нужно.
В качестве альтернативы, если у вас есть время покопаться в & setup или оценить дополнительные функции, есть более крупный инструмент с именем sslyze (не использующий его, так как зависимости и установка ...)
источник
Для полноты: если у вас установлена система Java 7 или выше
показывает цепочку (как показано ) почти со всеми деталями в довольно уродливом формате.
Должен ли я установить Java в вашей системе, я не отвечаю.
источник
Я использую сценарий оболочки для этого. Это просто оболочка для команды openssl, которая спасает меня от запоминания синтаксиса.
Он предоставляет опции для анализа большей части информации о сертификатах, которая обычно мне интересна, или для отображения необработанного вывода openssl.
Можно запросить локальный файл сертификата или удаленный сервер.
Использование:
Вы можете получить сценарий здесь: http://giantdorks.org/alain/shell-script-to-check-ssl-certificate-info-like-expiration-date-and-subject/
источник
Если вы хотите сделать это в Windows, вы можете использовать PowerShell со следующей функцией:
Это позволяет вам делать некоторые аккуратные вещи, такие как
источник
источник
Если вам нужна только дата истечения срока действия (которая не является точным ответом, но для которой используются сведения о сертификате Chrome - 9/10), вы можете использовать:
echo | openssl s_client -connect google.com:443 2>/dev/null | openssl x509 -noout -enddate
Полезно для сценариев и т. Д.
источник