Наш клиент использует несколько проектов с поддоменами на CMS 1C Битрикс.
Как известно, если у сайта есть поддомены, например, msk.alfaopt.com, msc.alfaopt.com, то обычный сертификат для корневого домена здесь не подойдет. Нужен wildcard SSL. И это, как правило, не дешевые сертификаты.
Выпускаются такие сертификаты через консоль. Через обычное меню bitrix vm доступны сертификаты только для основного домена, например, alfaopt.com, но на spb.alfaopt.com они работать уже не будут.
Продолжайте читать статью и узнаете, как получить бесплатные SSL сертификаты для проектов с поддоменами и без них на bitrix VM / centos через консоль.
Устанавливаем сертификаты
Итак, открываем консоль и подключаемся к нашему серверу через ssh.
1. Установите certbot:
yum install certbot
Выполните следующую команду для получения сертификата, указав в ней необходимые данные. Это, если мы устанавливаем сертификат для корневого домена, без учета поддоменов.
certbot certonly --webroot --agree-tos --email admin@email.ru -w /path/to/dir/site/ -d domain.ru -d www.domain.ru
- admin@email.ru — e-mail администратора домена;
- /path/to/dir/site/ — полный путь до директории с файлами сайта;
- domain.ru и www.domain.ru — домены, для которых будет сгенерирован сертификат. Можно указать несколько доменов, перед каждым необходимо указать ключ -d.
1.3. По окончании процесса, если он прошел успешно, отобразится следующий текст, где будет указан путь к сертификату (fullchain.pem) и приватному ключу в незашифрованном виде (privkey.pem):
1.4. Теперь нужно проверить, указан ли у вас в конфиг. файлах nginx путь до сертификата. Конфиг. файлы лежат в /etc/nginx/bx/site_enabled/
Если нужного файла нет для сайта, создаём его, скопировав конфигурацию для другого сайта. Пути к действующим сертификатам берём из п. 1.3.
После строчки include bx/conf/twssl.conf;
ssl_certificate /полный/путь/к/файлу_сертификата.crt; (certbot .pem)
ssl_certificate_key /полный/путь/к/файлу_ключа.key; (certbot.pem)
Проверяем конфигурацию
nginx -t
Перезапускаем веб-сервер
service nginx restart
1.5. Для проверки правильности цепочки сертификата и доступности пользуемся этим сервисом.
Если нам нужно установить сертификат с учетом поддоменов wildcard SSL
Вводим команду:
certbot run -a manual -i nginx -d *.(ваш домен).ru -d (ваш домен без поддоменов).ru
После запуска добавляем TXT запись для домена. Сначала добавляем запись, только потом нажимаем “Продолжить”.
2.2 Проверить также правильный путь у вас до сертификатов в Конфиг.файлах, файлы лежат в /etc/nginx/bx/site_enabled/
Проверить цепочку и работу сертификата можно через сервис SSL checker
Продление сертификата
3. Для автоматического продления сертификатов Let's Encrypt на BitrixOS необходимо добавить соответствующее задание в crtontab.
3.1 Откройте crontab
crontab -e
3.2 Добавьте задачу: (можно добавить через sftp) у bitrix vm путь /var/spool/cron/root
30 6 * * * certbot renew --post-hook "systemctl reload nginx"
Согласно данному заданию, ежедневно в 6:30 будет проводиться проверка необходимости обновления сертификата.
Благодарим за внимание! Надеемся, что эта информация была для вас полезной. Пишите вопросы и предлагайте новые темы в комментариях.