Установка платного или бесплатного сертификатов ssl на Битрикс VM/CentOS 7
Последние записи
Установка бесплатного ssl с помощью меню bitrixvm
Наиболее простой способ это воспользоваться встроенными средствами по установке сертификата:
- - Заходим в консоль под root
- - Выбираем пункт 8. Manage pool web servers
- - Далее 3. Configure certificates
- - А в нем 1. Configure "Let's encrypt" certificate
- - Сначала указываем идентификатор сайта в системе. Например default или master
- - Далее указываем домен для которого требуется подписать сертификат
- - В конце указываем почту на которую будут приходить уведомления от Let's Encrypt
Установка бесплатного сертификата вручную
Обновляем систему
yum update
Переходим в папку /usr/local/sbin
cd /usr/local/sbin
Скачиваем Certbot
wget https://dl.eff.org/certbot-auto
Устанавливаем права для выполнения скрипта
chmod a+x certbot-auto
Запускаем получение сертификата для nginx
certbot-auto --nginx
Если все хорошо, то делаем рестарт nginx
service nginx restart
Более подробный мануал на тему Получение и установка бесплатного SSL сертификата Let’s Encrypt на 1C-Битрикс: Виртуальная машина для nginx
Альтернативный способ установки LetsEncrypt
Может быть полезно если первые два не работают
Устанавливаем certbot
yum install certbot
Получаем сертификаты для нужного домена
certbot certonly -d domain.ru -d www.domain.ru
После применения команды выбираем Place files in webroot directory (webroot)
. В данный момент это третий вариант меню. Указываем путь к домашней директории домена. В bitrixvm
для сайта по умолчанию это /home/bitrix/www/
Вводим email и соглашаемся с условиями пользования сервисом
Сертфиикат получен. Вы получите сообщение следующего содержания:
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/domain.ru/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/domain.ru/privkey.pem
Your cert will expire on YYYY-MM-DD
Сохраняем пути к сертификатам - они нам еще понадобятся
В конфиге сайта /etc/nginx/bx/site_avaliable/bx_ext_ssl_domain.ru.conf
прописываем пути к новым сертификатам
ssl_certificate /etc/letsencrypt/live/domain.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.ru/privkey.pem;
Презагружаем nginx
nginx -s reload
Установка сертификата завершена
Бесплатные LetsEncrypt
сертификаты выдаются на срок до 3-х месяцев поэтому желательно поставить на крон их автоматическое обновление. Например, каждую неделю
0 0 * * 5 certbot renew &> /dev/null
При выпуске сертификатов помните, что certbot
позволяет в день выпускать до 5-ти сертификатов, после чего следует бан на несколько дней. Постарайтесь завершить настройку с первых попыток
Способ описан в материале Альтернативный способ установить сертификат от LetsEncrypt на bitrix VM, который мне в свое время очень помог
Установка платного сертификата
Берем файлы site.ru.crt и site.ru.key
и кладем в папку /etc/nginx/ssl/
В файле/etc/nginx/bx/conf/ssl.conf
меняем пути к сертификату и его ключу
# If they come here using HTTP, bounce them to the correct scheme
# Nginx internal code used for the plain HTTP requests
# that are sent to HTTPS port to distinguish it from 4XX in a log and an error page redirection.
error_page 497 https://$host$request_uri;
# Increase keepalive connection lifetime
keepalive_timeout 70;
keepalive_requests 150;
# SSL encryption parameters
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers 'TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_prefer_server_ciphers on;
ssl_certificate /etc/nginx/ssl/site.ru.crt;
ssl_certificate_key /etc/nginx/ssl/site.ru.key;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
# performance
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
Проверяем настройки nginx
service nginx configtest
или
nginx -t
Если все хорошо, то делаем рестарт nginx
service nginx restart
Очень подробная статья на тему Установка ssl-сертификата для битрикс окружения bitrix vm
Установка Let’s Encrypt
на сайт с панелью Vesta
bash скрипт
#!/bin/bash
# How to Install Let’s Encrypt Certificate on VestaCP
USERNAME = 'username'
DOMAIN = 'mydomain.com'
# Go to folder
cd /usr/local
# Clone git repositories
git clone https://github.com/letsencrypt/letsencrypt.git
git clone https://github.com/interbrite/letsencrypt-vesta.git
git clone https://github.com/certbot/certbot.git
# Create the “webroot” directory where Let’s Encrypt will write the files needed for domain verification.
mkdir -p /etc/letsencrypt/webroot
# Now also symlink the Apache conf file in your Apache conf.d directory.
ln -s /usr/local/letsencrypt-vesta/letsencrypt.conf /etc/httpd/conf.d/letsencrypt.conf
# Symlink letsencrypt-auto and letsencrypt-vesta in /usr/local/bin for easier access.
ln -s /usr/local/letsencrypt/letsencrypt-auto /usr/local/bin/letsencrypt-auto
ln -s /usr/local/letsencrypt-vesta/letsencrypt-vesta /usr/local/bin/letsencrypt-vesta
# Restart server
service httpd restart
# Install at
yum install at
# Command for get SSL certificate and automatic Renewals every 60 days
letsencrypt-vesta -a 60 $USERNAME $DOMAIN
Если вам нужно установить сертификат на домен и поддомены, то воспользуйтесь следующими командами
v-add-letsencrypt-user user
v-add-letsencrypt-domain user domain.ru alias.domain.ru
Комментарии