SSL без сертификата

SSL без сертификата

Я пытаюсь сделать 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

Связанный контент