Когда я открываю https://amazon.com в Firefox я получаю сообщение «Недоверенное соединение», потому что сертификат SSL, представленный amazon.com, действителен только для www.amazon.com. Почему я не получаю то же сообщение, когда открываю google.com с помощью SSL?
Насколько я понимаю вывод
openssl s_client -connect google.com:443 | openssl x509 -noout -text
сертификат, представленный google.com, использует www.google.com в качестве общего имени и не содержит альтернативных имен субъектов или подстановочных знаков. Что мне здесь не хватает?
Ваша командная строка неверна. Браузеры отправляют расширение Server Name Indication, чтобы сервер мог использовать правильный сертификат. Если вы сделаете это в этом случае:
$ openssl s_client -servername google.com -connect google.com:443 | openssl x509 -noout -text
Вы получаете сертификат с альтернативным именем субъекта (SAN) для google.com.
(И наоборот, если вы используете IE в Windows XP, который не отправляет расширение SNI, вы получите сертификат по умолчанию.)
Сертификат выдается на * .google.com, что означает, что он действителен для любого префикса.
Некоторые эмитенты позволяют использовать сертификат SSL с вашим www.domain.com и базовым доменом - без дополнительных затрат, таким образом вы можете защитить как www.domain.com, так и domain.com.
http://nayyeri.net/ssl-certificates-and-www-prefix-on-domain-names
С другой стороны, поскольку меня перенаправляют с https://google.com к http://www.google.com Я не могу проверить, является ли SSL подстановочным знаком или нет, но я предполагаю, что это локальная вещь.
Сертификат имеет обычное общее имя (CN), которое может включать подстановочный знак и иногда может иметь явно определенные альтернативы или даже совершенно другой домен, действительный через альтернативные имена субъектов.