Бесплатный ssl-сертификат для интернет магазина на Битрикс и Битрикс24

upload7qfvhf8ix9.jpg

О том, для чего нужен SSL сертификат, какой лучше выбрать и как установить

С 1 января 2017 года наступило три важных события в жизни интернет-магазинов.

  1. Google и Mozilla выпустили новые версии популярных браузеров Google Chrome и Firefox, которые начали помечать сайты, работающие без ssl-сертификата, как небезопасные. И предупреждают об этом пользователей. Ничего ужасного, но доверие к таким сайтам снижается.

  2. Поисковые системы начали приоритетно ранжировать сайты, работающие по HTTPS, с ssl-сертификатом.

  3. Началась подготовка к передаче данных об онлайн-оплатах в интернет-магазинах в ФНС через операторов фискальных данных. Обязательное подключение интернет-касс начнется с 01 июля 2017. Для передачи потребуется SSL-сертификат.

Как же получить заветный ssl-сертификат, да еще и бесплатно?

Необходим сайт, мобильное приложение, услуги по SEO или контекстной рекламе? Тендерная площадка WORKSPACE поможет выбрать оптимального исполнителя. База проекта насчитывает более 10 500 агентств. Сервис работает БЕСПЛАТНО как для заказчиков, так и для исполнителей.

План работ

SSL-сертификат используется для шифрования трафика между сервером интернет-магазина и браузером пользователя. В большинстве случаев он гарантирует, что никто не «подслушивает» и не подменяет данные.

Итак, нам нужно перевести интернет-магазин на HTTPS. Эта задача решается в несколько крупных шагов:

  1. Достать ssl-сертификат.

  2. Установить ssl-сертификат на хостинг.

  3. Настроить сайт.

  4. Оповестить поисковые системы о переходе на HTTPS.

Обо всем по порядку.

Шаг 1. Покупаем или устанавливаем бесплатный SSL-сертификат

Базовый ssl-сертификат (domain validation — DV)

Обычно ssl-сертификат покупают на 1 год или более (далее его надо снова покупать). Минимальная стоимость ssl-сертификата — 600 рублей, эту цену легко найти через поисковик. За 600 рублей можно купить базовый ssl-сертификат компании Comodo на 1 год для одного доменного имени, например, magazin.ru и www.magazin.ru.

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

Если вам нужен сертификат на несколько доменов, его стоимость возрастет. Wildcard-сертификаты, которые можно устанавливать на любое число поддоменов, например, test.magazin.ru, piter.magazin.ru, ufa.magazin.ru, стоят от 7 тысяч рублей и выше. Для крупных магазинов, может быть, это не является проблемой, но средние и небольшие магазины лучше потратят эти деньги на развитие сайта.

Подведем итог. Базовый ssl-сертификат:

  1. шифрует трафик;

  2. повышает доверие клиентов к сайту;

  3. подтверждает только доменное имя сайта.

  4. добавляет заветный замочек в браузере к адресу сайта;

  5. можно купить на один или несколько поддоменов;

  6. доступен физическим или юридическим лицам;

  7. дешев и сердит).

Деловой ssl-сертификат (Company/Organization validation)

Отличается от базового процедурой проверки компании, которая покупает сертификат, по ЕГРЮЛ. Имя компании, адрес ее местонахождения будут отображены в подробной информации о сертификате. Но при этом «заветный замочек» все еще будет серым. Начинается стоимость таких сертификатов от 5000 р. Для кириллических доменов, есть сведения, дешевле.

Характеристики делового ssl-сертификата:

  1. шифрует трафик;

  2. повышает доверие клиентов к сайту;

  3. подтверждает доменное имя, название и адрес компании;

  4. добавляет серый замочек к адресу сайта в браузере;

  5. можно купить на один или несколько поддоменов;

  6. доступен только юридическим лицам;

  7. добавляет компанию в реестр на dnb.ru или yp.ru

  8. не столь дешевый, но и менее сердитый 8).

SSL-сертификат с расширенной проверкой (тот самый зеленый замочек b7aa017f475ed96546e981336f4509fe.png — EV)

Дает максимальную уверенность пользователям, но нужен только для крупных интернет-магазинов. Для получения сертификата надо пройти расширенную проверку телефона компании, юридического лица, должностного лица, подающего заявку. Процедура ускоряется, если у компании уже есть регистрация в реестрах.

Платим от 13 000 рублей и, наконец, искатели заветного зеленого замочка достигают своей мечты:

Характеристики расширенного ssl-сертификата:

  1. шифрует трафик также, как и другие типы сертификатов;

  2. дает максимальное доверие клиентов к сайту;

  3. выводит имя компании рядом с адресом сайта.

  4. добавляет зеленый замочек в браузере к адресу сайта;

  5. можно купить только на один домен;

  6. доступен только юридическим лицам;

  7. добавляет компанию в реестр на dnb.ru или yp.ru

  8. Самый дорогой вариант.

Как получить ssl-сертификат бесплатно

Чтобы сделать интернет безопаснее, крупные западные корпорации совместно с фондом Electronic Frontier Foundation основали первый некоммерческий авторизационный центр Let«s Encrypt. Подробнее — см. по ссылке (на английском). Сервис разработан и поддерживается компанией Internet Security Research Group (ISRG).

Суть этого сервиса в том, что теперь любой сайт может бесплатно получить ssl-сертификат и продлять его без ограничения срока.

Получить бесплатный ssl-сертификат можно двумя способами:

  1. Вручную на сайте letsencrypt.org/getting-started/ и далее через раздел Ручной режим — manual mode

  2. Полуавтоматически или автоматически (в зависимости от ПО вашего сервера, на котором работает интернет-магазин, сайт или Битрикс24) через бота Certbot

Если Вы решили получить сертификат вручную, а затем установить его на свою Виртуальную машину Bitrix VM, воспользуйтесь готовой инструкцией по установке ssl-сертификата на виртуальную машину Битрикс.

Шаг 2. Установка ssl-сертификата на сервер

Если ваш интернет-магазин, сайт или портал Битрикс24 в коробке работает на виртуальной машине Битрикс, вы сможете установить и настроить ssl-сертификат от Let«s Encrypt при наличии у вас базовых знаний по администрированию серверов на Unix. Если вы не хотите тратить свое время или не обладаете такими навыками, пожалуйста, обращайтесь в нашу компанию, мы поможем перевести ваш сайт на HTTPS.

Если сайт работает на shared-хостинге, стоит обратиться к хостинг-провайдеру для установки ssl-сертификата. Процедура установки сертификата Let«s Encrypt на сервера без виртуальной машины принципиально не отличаются. В помощь Вам будет этот мастер на сайте Certbot.

Стоит заметить, что для большинства веб-серверов Certbot работает в автоматическом режиме: он получает, устанавливает и продляет сертификаты самостоятельно. Например, Apache на Ubuntu Server 16.10. А вот для Nginx на CentOS 6 не содержит в своем репозитории Certbot и работает только в ручном режиме. Подробнее — см. certbot.eff.org

Установка ssl-сертификата Let«s Encrypt на Виртуальную машину Битрикс

Как мы помним, за работу по HTTPS в виртуальной машине Битрикс отвечает NGINX. Мы вернемся к нему, как только получим сертификат.

1

Для начала зайдем установим Certbot

Зайдем на сервер с интернет-магазином по ssh с правами root и установим Certbot в папку /usr/local/sbin напрямую в с сайта EFF.

$ cd /usr/local/sbin
$ sudo wget https://dl.eff.org/certbot-auto 

Получить последнюю версию Certbot можно также с Github (убедитесь, что у вас есть git):

$ cd /tmp
$ git clone https://github.com/certbot/certbot 

Далее переходим в директорию со свежескаченным Certbot-ом и дадим боту права на исполнение:

$ sudo chmod a+x /usr/local/sbin/certbot-auto

2

Приступим к получению сертификата

Для получения сертификата необходимо выполнить команду с вызовом Certbot«a с определенными параметрами:

$ certbot-auto certonly —webroot —agree-tos —email myemail@domen.ru -w /home/bitrix/www/ -d domen.ru -d www.domen.ru

где,

—webroot — специальный ключ, повышающий надежность работы Certbot под Nginx;

—agree-tos — автоматическое согласие с Условиями предоставления услуг (Terms of Services;

—email myemail@domen.ru — Ваш e-mail. Будьте внимательны, его нельзя изменить, он потребуется, например, для восстановления доступа к домену и для его продления;

-w /home/bitrix/www — указываем корневую директорию сайта основного сайта; если у вас несколько многосайтовая конфигурация, укажите путь к доп. сайту — /home/bitrix/ext_www/

-d domen.ru — через ключ -d мы указываем, для каких доменов мы запрашиваем сертификат. Начинать надо c домена второго уровня domen.ru и через такой же ключ указывать поддомены, например, -d www.domen.ru -d opt.domen.ru

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

При успешном завершении работы Certbot поздравляет Вас с генерацией сертификата и выдает следующее сообщение:

IMPORTANT NOTES:
— If you lose your account credentials, you can recover through
e-mails sent to sammy@digitalocean.com
— Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/domen.com/fullchain.pem. Your
cert will expire on 2017-03-12. To obtain a new version of the
certificate in the future, simply run Let’s Encrypt again.
— Your account credentials have been saved in your Let’s Encrypt
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Let’s
Encrypt so making regular backups of this folder is ideal.
— If like Let’s Encrypt, please consider supporting our work by:


Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

* — если вместо этого сообщения появляется ошибка «Failed to connect to host for DVSNI challenge », то вам необходимо настроить ваш Firewall так, чтобы был разрешен TCP-трафик на портах 80 и 443.

** — если вы используете сервисы типа Cloudflare для вашего домена, предварительно отключите их на время генерации сертификата.

3

Настройка Nginx

Ура! Мы получили бесплатный ssl-сертификат на 3 месяца. Нам осталось только настроить Nginx и поставить автоматическое продление сертификата на cron.

Но сначала давайте повысим уровень безопасности и сгенерируем группу Диффи — Хеллмана. Это повысит уровень шифрования и поможет нам в дальнейшем получить оценку А+ при проверке сертификата.

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

Ждем примерно 2–4 минуты и переходим к конфигурированию Nginx.

Открываем файл /etc/nginx/bx/conf/ssl.conf и прописываем в нем пути к только что полученным сертификатам.

ssl_certificate /etc/letsencrypt/live/infospice.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/infospice.ru/privkey.pem; 

Ниже вы найдете дополнительные директивы Nginx, которые позволяет получить вам оценку А+ при проверке сертификата на sslanalyzer:

# SSL encryption parameters
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ’ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECD$
ssl_prefer_server_ciphers on;

# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
add_header Strict-Transport-Security max-age=15768000;

# 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;


ssl_certificate /etc/letsencrypt/live/domen.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domen.ru/privkey.pem;


# performance
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

Сохраняем изменения, тестируем конфигурацию Nginx:

$ nginx -t

Если никаких ошибок нет, перезапускаем Nginx:

$ service nginx reload

И идем проверять свежеустановленный сертификат на сервисе SSL Analyzer.

Если вы все сделали правильно, то должны увидеть приятную картинку — как эта:

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

$ nano /etc/crontab

И добавляем строки

30 2 * * 1 /usr/local/sbin/certbot-auto renew >> /var/log/le-renew.log 
35 2 * * 1 /etc/init.d/nginx reload

Теперь каждый понедельник в 2–30 наш сертификат (ы) будет продляться автоматически, результат запишется в лог. В 2–35, после продления сертификата, перезагрузится конфигурация Nginx.

Вручную же можно продлить сертификаты следующей командой:

$ certbot-auto renew 

Так как наши сертификаты уже сгенерированы, Certbot их просто продлит.

Если теперь вы хотите переключить весь трафик на HTTPS, то в ВМ Битрикс это делается согласно инструкции.

Итог

  1. Мы узнали, зачем нужен ssl-сертификат, какие виды сертификатов бывают.

  2. Получили бесплатный ssl-сертификат или купили его.

  3. Установили ssl-сертификат на сайт и проверили, что теперь сайт работает по HTTPS, как того добивался великий Google и иже с ними.

Про настройку интернет-магазина под HTTPS и оповещение поисковиков мы напишем в следующей статье.

Спасибо всем, кто дочитал до конца.

Полный текст статьи читайте на CMS Magazine