Перейти к основному содержимому

Как настроить перенаправление с HTTP на HTTPS для сайта с установленным SSL-сертификатом?

После завершения развертывания SSL-сертификата необходимо настроить правило принудительного перенаправления 301 на сервере, чтобы обеспечить доступ ко всему сайту по зашифрованному HTTPS. Конкретные методы для разных серверов:

Внимание

После настройки очистите кэш браузера перед проверкой. Рекомендуется использовать инструмент проверки SSL от Racent для проверки статуса переадресации.

Nginx

Если вам нужно автоматически перенаправлять HTTP-запросы на HTTPS, вы можете сделать это следующим образом:

  1. Используйте функцию перенаправления Nginx и добавьте return 301 https://$host$request_uri; в server для HTTP, чтобы перенаправлять запросы HTTP на HTTPS. Измените следующим образом:

    server {
    listen 80;
    #把http的域名请求转成https
    return 301 https://$host$request_uri;
    }

  2. Перезапустите сервер Nginx, после чего можно будет обращаться к сайту по доменному имени. Автоматический переход с HTTP на HTTPS будет работать.

Подсказка

Полную инструкцию по установке SSL-сертификата см. в руководстве по установке SSL-сертификата sslTrus на сервере Nginx


Tomcat

Если вам необходимо автоматически перенаправлять HTTP-запросы на HTTPS, выполните следующие действия:

  1. Отредактируйте файл /usr/tomcat9.0.13/conf в каталоге web.xml и найдите тег </welcome-file-list>.

  2. После закрывающего тега </welcome-file-list> добавьте новую строку и вставьте следующее содержимое.

    <login-config>  
    <!-- Authorization setting for SSL -->
    <auth-method>CLIENT-CERT</auth-method>
    <realm-name>Client Cert Users-only Area</realm-name>
    </login-config>
    <security-constraint>
    <!-- Authorization setting for SSL -->
    <web-resource-collection >
    <web-resource-name >SSL</web-resource-name>
    <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
    </security-constraint>
  3. Отредактируйте файл server.xml в каталоге /usr/tomcat9.0.13/conf и измените параметр redirectPort на порт SSL connector, то есть порт 443. Как показано ниже:

    <Connector port="80" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="443" />
  4. Сохраните файл конфигурации и выполните следующую команду в каталоге bin, чтобы убедиться, что конфигурация верна.

    ./configtest.sh
  5. Если конфигурация в порядке, перезапустите сервер Tomcat, чтобы получить доступ к сайту по доменному имени и настроить автоматическое перенаправление с HTTP на HTTPS.

    ./shutdown.sh  #Остановить сервер Tomcat
    ./startup.sh #Запустить сервер Tomcat
Подсказка

Полную инструкцию по установке SSL-сертификата см. в руководстве по установке SSL-сертификата sslTrus на сервере Tomcat


IIS

  1. Откройте диспетчер служб IIS.

  2. Выберите имя сайта в разделе «Сайты» и дважды щёлкните «URL Rewrite». Как показано ниже:

    Внимание

    Перед выполнением этого шага загрузите и установите модуль URL Rewrite.

    IIS

  3. Перейдите на страницу «URL Rewrite» и нажмите Добавить правила на панели «Действия» справа. Как показано ниже:

    IIS

  4. В появившемся окне «Добавить правило» выберите Пустое правило и нажмите ОК. Как показано на рисунке ниже:

    IIS

  5. Перейдите на страницу «Изменение правила для входящих подключений». Как показано на рисунке ниже:

    IIS

    • Имя: введите Http redirect to https.
    • URL соответствия: в поле «Шаблон» вручную введите (.*).
    • Условия:
      • Нажмите «Добавить», появится окно «Добавить условие».
      • Ввод условия: {HTTPS}.
      • Проверить, соответствует ли входная строка: по умолчанию выбрано «Соответствует шаблону».
      • Шаблон: вручную введите ^OFF$.
    • Действие: заполните следующие параметры.
      • Тип действия: выберите «Перенаправление».
      • URL перенаправления: https://{HTTP_HOST}/{R:1}.
      • Тип перенаправления: 301 перенаправление.
  6. Нажмите Применить в столбце «Действия» справа, чтобы сохранить.

  7. Вернитесь на главную страницу сайта и нажмите Перезапустить в столбце «Управление сайтом» справа. После этого сайт будет доступен по HTTPS.

Подсказка

Полную инструкцию по установке SSL-сертификата смотрите в руководстве по установке SSL-сертификата sslTrus на сервере IIS


Apache

Если вам необходимо автоматически перенаправлять HTTP-запросы на HTTPS, вы можете выполнить следующие настройки:

  1. Отредактируйте конфигурационный файл httpd.conf в каталоге /etc/httpd/conf. Проверьте, есть ли в этом конфигурационном файле LoadModule rewrite_module modules/mod_rewrite.so . Если есть, удалите символ комментария (#) в начале строки, если нет, добавьте строку LoadModule rewrite_module modules/mod_rewrite.so и сохраните конфигурационный файл.

  2. Откройте файл http.conf и добавьте в него следующее содержимое:

    <VirtualHost *:80>
    # Добавлено
    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
    </VirtualHost>
  3. Перезапустите сервер Apache, после чего можно будет заходить по доменному имени — HTTP будет автоматически перенаправляться на HTTPS.

Подсказка

Полный порядок установки SSL-сертификата смотрите в руководстве по установке SSL-сертификата sslTrus на сервере Apache


Apache2

Если вам нужно автоматически перенаправлять HTTP-запросы на HTTPS, вы можете настроить это следующим образом:

  1. В командной строке введите a2enmod rewrite, чтобы включить модуль перенаправления.

  2. Затем откройте конфигурационный файл http, например: /etc/apache2/sites-available/000-default.conf, и добавьте в него следующее содержимое:

    <VirtualHost *:80>
    # Добавлено
    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
    </VirtualHost>
  3. Перезапустите сервер Apache, после чего можно будет заходить по доменному имени — HTTP будет автоматически перенаправляться на HTTPS.

Подсказка

Полный порядок установки SSL-сертификата смотрите в руководстве по установке SSL-сертификата sslTrus на сервере Apache2