1С Битрикс Блог

Получение и установка бесплатного SSL сертификата Let’s Encrypt на 1C-Битрикс: Виртуальная машина для nginx
1С Битрикс Блог
20.11.2016

Получение и установка бесплатного SSL сертификата Let’s Encrypt на 1C-Битрикс: Виртуальная машина для nginx

Начиная с 2017 года будет осуществлен переход всех сайтов на защищенный протокол HTTPS. Начиная уже с 56 версии Google Chrome будет ставить метку “Небезопасные” на все сайты, которые собирают персональную информацию пользователей (логин, пароль, фио, данные дебетовых и кредитных карт и т.д.). В дальнейшем, все сайты будут помечаться как “Небезопасные”. А в будущем, доступ к таким сайтам будет закрыт.

Что дает нам SSL сертификат? SSL сертификат позволяет нам использовать HTTPS протокол, что в свою очередь гарантирует, что информация, переданная между браузером и сервером останется конфиденциальной

Существует несколько типов SSL сертификатов: платные и бесплатные, с подтверждением данных об организации и без и т.д. Отличие бесплатных сертификатов в том, что они обычно даются на коротких срок их нужно продлевать вручную или автоматически, и никто не гарантирует, что завтра не придется искать новый сервис, который выдаст вам сертификат.

Одним из популярных центров бесплатной сертификации является Let’s Encrypt. Основными спонсорами проекта являются Electronic Frontier Foundation (EFF), Mozilla Foundation, Akamai, Cisco Systems. Поэтому этот сервис выглядит более надежным чем другие.

fa25e94a45632d8e7a73fa7a637eebda.jpg

Для того, что установить SSL сертификат на 1C-Битрикс: Виртуальная машина необходим shell доступ к серверу и начальные навыки администрирования linux. Установка происходит в автоматическом режиме, но потребуется прописать пару конфигов для nginx и пару раз перезагрузить его.

На сайте Let’s Encrypt есть подробная инструкция по установке SSL сертификата. Но установка SSL сертификата на 1C-Битрикс: Виртуальная машина немного отличается тем, что в настройках nginx используется подrлючение отдельного конфига для настроек SSL.

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

Для установки SSL сертификата Let’s Encrypt рекомендует установить Certbot. На сайте Certbot есть подробная инструкция по установке на различные операционные системы и веб-серверы. Перейдите на сайт Certbot и выберите вашу операционную систему и веб-сервер. В моем случае это CentOS 6 и nginx.

Запускаем SSH клиент, я обычно использую PuTTY, и подключаемся к серверу.

Putty

Вводим логин и пароль от пользователя с максимальными административными правами или от root, если вы не создавали дополнительного пользователя.

Putty - BitrixVM

Нажимаем Ctrl + C для того, чтобы выйти из меню 1C-Битрикс: Виртуальная машина. Обязательно обновляемся. Для этого набираем yum update и соглашаемся с обновлениями.

Далее переходим в папку /usr/local/sbin:

cd /usr/local/sbin

и скачиваем скрипт для автоматической установки Certbot:

wget https://dl.eff.org/certbot-auto

устанавливаем права для выполнения скрипта:

chmod a+x certbot-auto

Запускаем обновление Certbot:

certbot-auto

Certbot установит зависимости и предложить получить сертификат для указанного вами домена. Нажимает отмену “c”.

Запускаем получение сертификата для nginx:

certbot-auto --nginx

Выбираем нужный домен. Получение SSL сертификата произойдет автоматически.

Остается только подправить конфиг nginx и добавить задачу в cron для автоматического продления сертфиката.

По умолчанию конфигурационный файл nginx для SSL называется bx_ext_ssl_имя_домена.conf. В нем подключается конфигурационный файл с настройками SSL:

# enable SSL connection
include bx/conf/ssl.conf;

При последующем обновлении 1C-Битрикс: Виртуальная машина ваши изменения могут удалиться. Поэтому скопируем файл ssl.conf и переименуем его в ssl.имя_домена.conf. Подключение этого файла  будет выглядеть так:

# enable SSL connection
include bx/conf/ssl.имя_домена.conf;

В файле ssl.имя_домена.conf изменим строки:

ssl_certificate /etc/letsencrypt/live/имя_домена/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/имя_домена/privkey.pem;

Для того, чтобы повысить уровень безопасности сертификата сгенерируем группу Диффи-Хеллмана:

openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048

И добавим эти строки перед подключением сертификата:

# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
resolver 8.8.4.4 8.8.8.8 valid=600s;
ssl_stapling_verify on;
ssl_dhparam             /etc/nginx/ssl/dhparam.pem;

Остается только в меню виртуальной машины переключить сайт на использование только HTTPS и проверить, не стоить ли ограничение в работе сайта в проактивной защите. А затем перезагрузить nginx

service nginx restart

Ваш сайт станет доступен по HTTPS и автоматически переадресуется на него.


Коммментарии

Возврат к списку