1

У меня дома работает веб-сервер HTTPS, но у него есть один ключевой недостаток: вы не можете подключиться к нему через порт 80. Мой ISP (Cox) заблокировал (входящий) порт 80, я ничего не могу с этим поделать, но, к счастью для меня, они не заблокировали порт 443. Итак, я решил использовать чистый HTTPS-сервер, но это не совсем работает, так как у меня есть несколько вещей, которые я хочу перенаправить на мой (HTTPS) сервер:

http://www.example.com/ redirects to https://www.example.com/

http://example.com/ redirects to https://www.example.com/

https://example.com/ redirects to https://www.example.com/

И наконец, контрольно-пропускной пункт: https://www.example.com/ указывает на (CNAME) powe.ddns.net , который является моим динамическим DNS. Я пытался, но я не могу смешивать записи URL и CNAME или заставить CNAME указывать только на один порт на IP.

До сих пор я сделал все перенаправления перейти на https://ww2.example.com/ и указать эту точку на моем домашнем сервере, но с этим я не могу сделать https://www.example.com/ перенаправить на https://ww2.example.com/ потому что я не могу сделать перенаправления HTTPS на HTTPS.

Все решения, которые я нашел до сих пор, основаны на том, что порт 80 открыт, чего я не могу сделать. Так что я могу сделать? Возможные решения включают перенаправления с HTTPS на HTTPS, специфичные для порта DNS и переадресацию URL-адреса с HTTPS (я нашел только переадресацию HTTP на HTTP или HTTP на HTTPS). Спасибо!

2 ответа2

1

Что ж, получается, что это возможно. Используя CDN CloudFlare, вы можете выполнить автоматическое перенаправление HTTPS на сетевом уровне с помощью функции "Всегда использовать HTTPS", показанной здесь.

Cloudflare HTTPS переписать

Это происходит еще до того, как запрос достигает вашего сервера и становится доступным для уровня бесплатного пользования. Вы также можете включить HSTS, если хотите избежать переписывания каждый раз.

0

Я бы порекомендовал исследовать некоторые недорогие хостинги, поскольку то, что вы описываете, обычно невозможно с заблокированным портом 80 без участия третьей стороны.

Это не обязательно - вы все равно можете разместить сайт - но вы почти наверняка будете использовать один из двух вариантов ниже.

Использование службы DNS с отдельным поддоменом динамического поставщика DNS

Что касается вопроса о перенаправлении HTTP-запросов в HTTPS, то, исходя из подробностей вашего поста, я предполагаю, что ваш DNS-провайдер для example.com это облегчает. Предполагая, что вы хотите перенаправить их на https://powe.ddns.net, я бы сделал это напрямую через URL Redirection:

    www.example.com --> https://powe.ddns.net

    example.com --> https://powe.ddns.net

Дальнейшее перенаправление HTTPS должно быть ненужным.

Использование доменов напрямую с динамическим поставщиком DNS

Динамические службы DNS, которые распределяют субдомены, полезны, но вы можете исследовать поставщика DNS (вашего текущего регистратора или стороннего поставщика), который имеет динамический DNS-клиент и позволяет использовать ваш домен (например, https:// пример. com) непосредственно с этими услугами.

Хотя обычно это возможно при наличии 80-го порта, перенаправление HTTP на HTTPS (например, http://example.com -> https://example.com) в вашем случае невозможно без вмешательства третьей стороны, поскольку записи перенаправления URL и базовые записи DNS A создадут проблему, связанную с IP-адресом (ами) для данной записи (поэтому это будет обрезано при использовании URL-адресов, отличных от HTTPS).

ОБНОВЛЕНИЕ: В соответствии с собственным принятым ответом ОП, очевидно, CloudFlare будет перехватывать запросы на порт 80 и перенаправлять их на порт 443. У них также очевидно есть динамический клиент DNS.

Независимо от использования CloudFlare, можно по-прежнему использовать HTTPS-версии домена в любом случае.

Что касается перенаправления https://example.com на https://www.example.com без CloudFlare, решение будет заключаться в том, чтобы напрямую указывать IP-адрес вашего сервера и сортировать запросы не www и www на самом сервере.

Если вы еще этого не сделали, просто создайте две записи A как обычно, указывая правильный IP-адрес вашего сервера, например

    example.com.   IN A   99.100.101.102

    www            IN A   99.100.101.102

и использовать HTTPS для доступа к ним. Проконсультируйтесь с вашим поставщиком DNS о точных форматах для этих записей.

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

Затем в Apache перенаправьте https://example.com на https://www.example.com. Опять же, для простоты вы можете использовать:

    Redirect / https://www.example.com

внутри виртуального хоста HTTPS для https://example.com, хотя вы можете использовать другие параметры перенаправления (например, 301, 302), особенно для целей SEO.

Сертификаты

В качестве краткого предупреждения о сертификатах, помните, что https://www.example.com является поддоменом https://example.com, и если вы хотите работать с обоими без ошибок браузера, вам необходимо:

Если вам нужны бесплатные сертификаты, которые не являются самозаверяющими, возможный выбор - это сертификат Let's Encrypt. Их веб-сайт не имеет прямого интерфейса для запросов на сертификаты или управления ими, но ZeroSSL имеет как веб-интерфейс, так и клиент командной строки (как в виде сценария Perl, так и двоичного файла Windows). Также доступны другие клиенты.

Единственным недостатком сертификатов Let's Encrypt является то, что они короткие (всего 90 дней) и в настоящее время не выдают групповые сертификаты. Существуют некоторые ограничения скорости выдачи сертификатов, но в настоящее время они достаточно разумны.

URL-адреса в браузере

Хотя можно "замаскировать" URL-адреса, чтобы они вообще не менялись в адресной строке браузера, для этого часто требуется либо отдельный сервер, загружающий контент во фрейм, либо некоторое творческое использование mod_rewrite, которое может работать или не работать в зависимости от числа. факторов.

В случае HTTPS маскирование потенциально может подорвать HTTPS, работающий как задумано (в первую очередь для безопасности). Короче говоря, если вы можете быть довольны минимальными изменениями URL-адреса (например, http:// становится https:// или, возможно, перенаправляет https://example.com на серверную часть https://www.example.com ), я выбрал бы этот маршрут, используя example.com напрямую с провайдером динамического DNS, как описано выше.

SEO соображения

Обратите внимание, что как версии www, так и версии www не будут рассматриваться как отдельные домены с дублированным контентом для целей SEO (индексация с помощью поисковых систем). Поэтому вы можете предпринять соответствующие шаги, если хотите, чтобы ваш контент был проиндексирован правильно, например, Google)

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