#ssl #websocket
#ssl #websocket
Вопрос:
Доступ к веб-службе можно получить как через IP, так и через DNS.
Самозаверяющий сертификат, содержащий DNS в качестве общего имени, а также DNS и IP в качестве альтернативного имени субъекта, создается с помощью следующей команды
openssl req -x509 -nodes -subj "/O=www.example.com/CN=${domain_name}" -addext "subjectAltName=DNS:${domain_name},IP:${ip_addr}" -newkey rsa:4096 -keyout /path/to/key.pem -out /path/to/cert.pem -addext "extendedKeyUsage = serverAuth" -days 365
Открытие веб — страницы по IP-адресу и принятие предупреждения браузера работает.
Страница инициирует новое подключение WSS к DNS, но не удается из-за недействительного сертификата.
Как я должен настроить свой сертификат, чтобы браузеры доверяли как IP, так и доменному имени при запуске подключения wss
Комментарии:
1. Вы проверили свой сертификат, чтобы убедиться, что SANS действительно были добавлены?
openssl x509 -in /path/to/cert.pem -noout -text
2. @AndrewHenle да, оба присутствуют
Ответ №1:
Добавление исключения безопасности при принятии предупреждения безопасности о ненадежном сертификате выполняется не для сертификата, а для комбинации сертификата, домена и порта из URL-адреса. Поскольку доступ к HTML осуществляется по IP-адресу, а к websocket-по имени хоста, исключение, добавленное для первого, не будет охватывать второе.
Лучший способ-не принимать предупреждения о безопасности в первую очередь, а вместо этого добавить сертификат как надежный в браузере. В этом случае сертификат будет надежным для всех IP-адресов и доменов, указанных в сертификате.