Использование HTTPS с динамическим ip
Моя ситуация: я хочу запустить веб-сервер на устройстве в неизвестной сети. Запросы на порт 80 или 443 будут перенаправлены на это устройство с глобального ip.
Устройство регулярно отправляет свой IP-адрес на сервер в Интернете, и он сохраняется на этом сервере.
Возможно ли получить доступ к этому устройству через https без особых проблем? Проблема, конечно, в том, что IP-адрес может измениться, и сертификат SSL должен иметь имя хоста.
Изменить: устройству не назначен домен, который я мог бы использовать для сертификата. Возможно ли использовать принадлежащий мне домен и перенаправить его на динамический IP без изменения заголовка? Насколько я понимаю, это сделало бы возможным использование https
2 ответа
Общая мудрость SSL-сертификатов, связанных с одним IP-адресом, вводит в заблуждение. Сертификат SSL выдается для имени домена, а не IP-адреса. Проблема с IP-адресами связана с деталями протокола HTTPS, а именно с проблемой разрешения имен. HTTP-сервер может содержать множество разных сайтов для разных доменов, все на одном порту и IP-адресе. Он знает, какой сайт запрашивается на основе заголовка HTTP.
Теперь, с HTTPS, сервер должен сначала согласовать безопасное соединение SSL, прежде чем будут заменены какие-либо заголовки HTTP. Поэтому проблема заключается в том, что он не может знать, какой сертификат для какого домена он должен использовать для согласования безопасного соединения, поскольку у него еще не было возможности поговорить с клиентом о домене, который он хотел бы посетить.
На самом деле в более поздних версиях протокола HTTPS существуют механизмы согласования имен перед шифрованием, но практическая проблема заключается в том, что старые клиенты еще не поддерживают его (посмотрите на IE6).
Таким образом, практическое решение состоит в том, чтобы зарезервировать один IP-адрес и / или порт для каждого сайта HTTPS, потому что тогда не возникает проблем с несколькими разрешениями имен. Один IP / порт зарезервирован для одного конкретного HTTPS-сайта и в расширении для одного SSL-сертификата.
Это означает, что пока ваш сервер обслуживает только один домен HTTPS, его IP-адрес может меняться так часто, как он хочет; Там нет никаких проблем.
Нет проблем с динамическим IP. В SSL-сертификате вы храните статическое имя хоста (domain.com
), без IP-адреса.