сертификат SSL сам подписанный вместо допустимого

Я купил действительный сертификат:

Например, этот сайт проверяет его: https://sslanalyzer.comodoca.com/?url=www.example.com

Но когда я тестирую его с openSSL, как это:

openssl s_client-showcerts - соедините https://www.example.com:443

Я добираюсь

Проверьте код возврата: 18 (сам подписанный сертификат)

4
задан 29 May 2017 в 10:18
1 ответ

SNI-Hole

Вы попали в дыру SNI .

SNI - это указание имени сервера . Это позволяет иметь несколько разных имен хостов, живущих на одном общем IP. И если вы на самом деле не укажете имя сервера для сервера с поддержкой SNI, вы получите сертификат по умолчанию. (Это часть «дыры SNI».)

И OpenSSL не будет предоставлять имя сервера серверу TLS, пока вы не сообщите ему об этом. Для этого используйте параметр -servername .

$ echo '' | openssl s_client -showcerts -connect www.unival-logistics.com:443  -servername www.unival-logistics.com 2>/dev/null | grep -Ei 'subject|issuer|return'
subject=/C=US/OU=Domain Control Validated/CN=www.unival-logistics.com
issuer=/C=BE/O=GlobalSign nv-sa/CN=GlobalSign Domain Validation CA - SHA256 - G2
    Verify return code: 20 (unable to get local issuer certificate)

Если вы его не укажете, то получите сертификат по умолчанию для этого хоста. А вот и самоподписанный сертификат. (И я не думаю, что он должен быть там. Нет смысла доставлять самозаверяющий сертификат.)

 $ echo '' | openssl s_client -showcerts -connect www.unival-logistics.com:443  2>/dev/null | grep -Ei 'subject|issuer|return'
 subject=/O=americanfuturegate.com/CN=*.americanfuturegate.com/emailAddress=REDACTED1@example.com
 issuer=/O=americanfuturegate.com/CN=*.americanfuturegate.com/emailAddress=REDACTED1@example.com
     Verify return code: 18 (self signed certificate)

Проверьте эту установку

Примечание: я настоятельно прошу вас отключить SSL3. (Отчет SSL Labs здесь .)

12
ответ дан 3 December 2019 в 02:29

Теги

Похожие вопросы