Я пытаюсь сделать bash-скрипт, который будет проверять статус SSL моего веб-сайта-клиента и возвращать ошибку. Но для каждого IP-адреса wget https://$ip:$port
выдает следующую ошибку:
ERROR: The certificate of 1.2.3.4 is not trusted
ERROR: The certificate of 1.2.3.4 hasn't got a know issuer
Когда я пробую с Firefox, у меня есть сертификат для каждого IP. Поэтому я попытался сбросить Firefox CA в репозиторий следующим образом:
wget http://$ip:$port --ca-directory=(directory of CA from Firefox)
Но это ничего не меняет.
Я думаю, wget
что не находит SSL-сертификат и я не знаю, как его получить.
Как я могу получить информацию о сертификате?
решение1
Обычно SSL-сертификаты выдаются на имена хостов, www.example.com
а не на IP-адреса.
Поэтому при использовании IP-адреса вы получаете несоответствие между URL, к которому вы обращаетесь, и именем хоста, которому был выдан сертификат.
Во-вторых, каталог CA из Firefox может не подойти, так как согласно странице руководства wget требует:
--ca-directory=каталогУказывает каталог, содержащий сертификаты CA в формате PEM. Каждый файл содержит один сертификат CA, а имя файла основано на хэш-значении, полученном из сертификата. ...
Я думаю, что wget использует библиотеки openssl, что, возможно, делает утилиту более подробной для проверки статуса сертификата, например, в запросе на определение даты истечения срока действия SSL-сертификата:
echo "GET /" | openssl s_client -connect servername:port | openssl x509 -noout -dates