Меня уже давно просили немного осветить тему настройки HTTPS-соединения на сайте . Для тех, кто не знает, зачем нужен HTTPS , объясняю: когда Вы передаёте свои данные (например, логин и пароль) серверу, то они идут в открытом виде. Если их злоумышленник перехватит, то, соответственно, он их узнает. На обычных сайтах...

Как настроить HTTPS-соединение?

Меня уже давно просили немного осветить тему настройки HTTPS-соединения на сайте. Для тех, кто не знает, зачем нужен HTTPS, объясняю: когда Вы передаёте свои данные (например, логин и пароль) серверу, то они идут в открытом виде. Если их злоумышленник перехватит, то, соответственно, он их узнает. На обычных сайтах это не так страшно, но вот если это будет какая-нибудь платёжная система, тогда, получив доступ к данным, злоумышленник просто опустошит Ваши кошельки. А с использованием HTTPS данные отправляются в зашифрованном виде, и только лишь у сервера-приёмника есть ключ, позволяющий их расшифровать. То есть злоумышленник, перехватив данные, не получит ровным счётом ничего.

Сразу говорю, что сам сайт никак не меняется. По сути для создания HTTPS-соединения надо лишь настроить сервер.

Итак, порядок действий:

  1. Настроить SSL. Сам процесс зависит от сервера, но, как правило, по умолчанию он уже настроен. В пакете Denwer он уже также подготовлен для работы.
  2. Купить и установить сертификат на сервер. Цены начинаются примерно от 2500 рублей в год. Можно, конечно, и не покупать, но тогда пользователей будут постоянно предупреждать, что используется недоверенный сертификат. Сам сертификат состоит из двух частей: открытый и закрытый ключ (public и private). Первый используется для шифрования данных от клиента к серверу, а второй для расшифровки этих данных уже на сервере. Установка сертификата также зависит от сервера, плюс от операционной системы.
  3. Настроить виртуальный хост. Примерный код я покажу ниже, но опять же это всё зависит от сервера и от операционной системы.

Ниже привожу код, который необходимо прописать в файле httpd.conf (файл настройки сервера Apache):

<VirtualHost mysite.ru:443>
  #Включить SSL
  SSLEngine on
  # Путь к сертификату
  SSLCertificateFile /usr/local/etc/apache/ssl.crt/certificate.crt
  # Путь к закрытому ключу
  SSLCertificateKeyFile /usr/local/etc/apache/ssl.key/privatekey.key
  # Убираем ошибку у Internet Explorer "Bad data from the server"
  SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
  # Путь к log-файлу
  ErrorLog /usr/local/apache/logs/ssl_engine_log
  # Формат содержимого log-файла
  CustomLog /usr/local/apache/var/log/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

После этого можно будет обращаться к https://mysite.ru, тем самым, делая безопасное соединение с сайтом.

В данной статье я показал ход действий для настройки HTTPS-соединения на сайте. Ещё раз повторяю, каждый из этапов зависит от сервера и от операционной системы, поэтому всё-таки придётся воспользоваться поиском для одного из частных случаев, который возник конкретно у Вас.