128

Когда я захожу на https://1.1.1.1, любой веб-браузер, который я использую, считает URL-адрес безопасным.

Вот что показывает Google Chrome:

В адресной строке Google Chrome 65.0.3325.181 отображается https://1.1.1.1

Обычно, когда я пытаюсь зайти на сайт HTTPS через его IP-адрес, я получаю предупреждение системы безопасности, подобное этому:

В адресной строке Google Chrome 65.0.3325.181 отображается https://192.168.0.2

Насколько я понимаю, сертификат сайта должен соответствовать домену, но средство просмотра сертификатов Google Chrome не показывает 1.1.1.1:

Просмотр сертификата: * .cloudflare-dns.com

Статья базы знаний GoDaddy «Могу ли я запросить сертификат для имени в интрасети или IP-адреса?" говорит:

Нет - мы больше не принимаем запросы на сертификаты для имен в интрасети или IP-адресов. Это отраслевой стандарт, а не специфичный для GoDaddy.

(акцент мой)

А также:

В результате с 1 октября 2016 г. центры сертификации (ЦС) должны отзывать сертификаты SSL, которые используют имена или IP-адреса в интрасети.

(акцент мой)

А также:

Вместо того, чтобы защищать IP-адреса и имена в интрасети, вы должны перенастроить серверы для использования полных доменных имен (FQDN), таких как www.coolexample.com.

(акцент мой)

Это произошло после обязательной даты отзыва 01 октября 2016 года, но сертификат для 1.1.1.1 был выпущен 29 марта 2018 года (как показано на скриншоте выше).


Как это возможно, что все основные браузеры считают, что https://1.1.1.1 является доверенным веб-сайтом HTTPS?

3 ответа3

100

Документация GoDaddy ошибочна. Это неправда, что центры сертификации (CA) должны отзывать сертификаты для всех IP-адресов ... только зарезервированные IP-адреса.

Источник: https://cabforum.org/internal-names/

Центром сертификации для https://1.1.1.1 был DigiCert, который на момент написания этого ответа позволял покупать сертификаты сайта для публичных IP-адресов.

В DigiCert есть статья об этом, которая называется « Выпуск SSL-сертификата внутреннего имени сервера после 2015 года»:

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

(акцент мой)

Cloudflare просто получил сертификат для своего IP-адреса 1.1.1.1 от этого доверенного CA.

Анализ сертификата для https://1.1.1.1 показывает, что сертификат использует альтернативные имена субъектов (SAN) для охвата некоторых IP-адресов и обычных доменных имен:

deltik@node51 [~]$ openssl s_client -showcerts -connect 1.1.1.1:443 < /dev/null 2>&1 | openssl x509 -noout -text | grep -A1 'Subject Alternative Name:'
            X509v3 Subject Alternative Name: 
                DNS:*.cloudflare-dns.com, IP Address:1.1.1.1, IP Address:1.0.0.1, DNS:cloudflare-dns.com, IP Address:2606:4700:4700:0:0:0:0:1111, IP Address:2606:4700:4700:0:0:0:0:1001

Эта информация также находится в средстве просмотра сертификатов Google Chrome на вкладке "Сведения":

Просмотр сертификата: Подробности: * .cloudflare-dns.com

Этот сертификат действителен для всех перечисленных доменов (включая подстановочный знак *) и IP-адресов.

92

Английский неоднозначен. Вы анализировали это так:

(intranet names) or (IP addresses)

т.е. полностью запретить использование числовых IP-адресов. Значение, которое соответствует тому, что вы видите:

intranet (names or IP addresses)

т.е. запретить сертификаты для частных диапазонов IP-адресов, таких как 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16, а также для частных имен, которые не отображаются в общедоступном DNS.

Сертификаты для публично маршрутизируемых IP-адресов по-прежнему разрешены, но обычно не рекомендуется для большинства людей, особенно для тех, у кого нет статического IP- адреса .


Это утверждение является советом, а не утверждением, что вы не можете защитить (публичный) IP-адрес.

Вместо того чтобы защищать IP-адреса и имена в интрасети, вы должны перенастроить серверы для использования полностью определенных доменных имен (FQDN), таких как www.coolexample.com.

Может быть, кто-то в GoDaddy неверно истолковал формулировку, но, скорее всего, он хотел, чтобы их советы были простыми, и хотел рекомендовать использовать публичные DNS-имена в сертификатах.

Большинство людей не используют стабильный статический IP для своих услуг. Предоставление услуг DNS - это единственный случай, когда действительно необходимо иметь стабильный общеизвестный IP-адрес, а не просто имя. Во всех остальных случаях добавление текущего IP-адреса в ваш сертификат SSL ограничит ваши будущие возможности, потому что вы не можете позволить кому-то другому начать использовать этот IP-адрес. Они могут выдавать себя за ваш сайт.

Cloudflare.com имеет контроль в 1.1.1.1 IP - адрес себя, и не собирается делать ничего другого с ним в обозримом будущем, так что имеет смысл для них, чтобы поместить их IP в их серт. Особенно в качестве поставщика DNS, более вероятно, что клиенты HTTPS будут посещать их URL по номеру, чем для любого другого сайта.

43

Похоже, что имя субъекта сертификата включает в себя IP-адрес:

Not Critical
DNS Name: *.cloudflare-dns.com
IP Address: 1.1.1.1
IP Address: 1.0.0.1
DNS Name: cloudflare-dns.com
IP Address: 2606:4700:4700::1111
IP Address: 2606:4700:4700::1001

Традиционно, я полагаю, вы бы указали здесь только DNS-имена, но Cloudflare также включил их IP-адреса.

https://1.0.0.1/ также считается безопасным для браузеров.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .