Я хотел бы иметь возможность определить, является ли сертификат TLS/SSL удаленного домена «доверенным» из командной строки.
Вот пример openssl, с которым я играл несколько недель назад, здесь я использую openssl для получения сертификата, а затем передаю его команде openssl «проверить». Я предположил, что команда «verify» проверит сертификат, однако, насколько я понимаю сейчас, команда «verify» просто проверяет цепочку сертификатов (я думаю). (cdn.pubnub.com — это просто домен, который я нашел в результате быстрого поиска в Твиттере в качестве примера для использования)
echo "GET /" | openssl s_client -connect cdn.pubnub.com:443 | openssl x509 -text | openssl verify
Как видно из домена cdn.pubnub.com (на момент написания), браузер (Chrome по крайней мере) не доверяет сертификату (поскольку домен сертификата не совпадает), однако команда openssl «verify» не выводит «доверенный» или «не доверенный» или что-то еще, из чего мы можем вывести эту информацию.
Еще один способ, который я придумал для этого, — это использование безголового браузера (например, PhantomJS) и разбор любых ошибок, которые они возвращают. Получается, что PhantomJS просто выдает ошибки, но не дает никаких подробностей, поэтому это нельзя использовать, так как ошибка могла быть вызвана чем-то другим.
Я не думал, что будет так сложно узнать, является ли сертификат доверенным или нет, из командной строки, без необходимости анализировать и проверять все данные, которые делают сертификат доверенным мне, что я не думаю, было бы разумно.
Есть ли библиотека или какой-либо другой способ определить, является ли сертификат удаленного домена доверенным из командной строки?