SSL-сертификат в BitrixVM - выпуск, продление, перенос
Выпускаем сертификат средствами окружения, включаем переход на защищённое соединение и проверяем результат с сервера.
Решение
Проверяем, что домен указывает на этот сервер:
dig +short example.com # адрес домена по данным DNScurl -s ifconfig.me # внешний адрес самого сервера# адреса должны совпасть: иначе проверка владения доменом не пройдётВыпуск бесплатного сертификата требует, чтобы домен уже вёл на сервер. Пока адреса расходятся, проверка владения не проходит, и меню возвращает ошибку без подробностей.
Выпускаем сертификат пунктом меню окружения:
/opt/webdir/bin/bx-sites -a certificate -s example.com --le# сертификат выпускается на все домены сайта, включая псевдонимыsystemctl reload nginxОкружение само дописывает конфигурацию сайта и заводит задание на продление. Сертификат, выпущенный руками мимо меню, продлеваться не будет: задание создаёт именно эта команда.
Ставим платный сертификат:
ssl_certificate /etc/nginx/certs/example.com.crt; # сертификат + цепочкаssl_certificate_key /etc/nginx/certs/example.com.key;ssl_protocols TLSv1.2 TLSv1.3;В файл сертификата кладут и промежуточные сертификаты цепочки, одним файлом. Браузер настольного компьютера цепочку часто достраивает сам, а мобильный клиент - нет, отсюда жалобы вида «на телефоне не открывается».
Включаем переход на защищённое соединение:
# переадресация на уровне веб-сервера: до PHP запрос не доходит вовсеif ($scheme = http) { return 301 https://$host$request_uri;}Переадресацию в коде сайта делать не нужно. Она обходится дороже, попадает в кэш вместе со страницей и ломается на служебных адресах обмена.
Проверяем результат с самого сервера:
# цепочка, срок действия и издатель одной командойecho | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null \ | openssl x509 -noout -dates -issuer -subjectПроверять стоит именно с сервера, а не из браузера. Браузер показывает свой кэш и уже достроенную цепочку, поэтому неполная установка в нём выглядит исправной.
Смешанное содержимое ищут по исходному коду готовой страницы. Ссылки на картинки и скрипты с незащищённым адресом остаются в шаблоне сайта и в сохранённых текстах инфоблоков, и правят их именно там, а не в настройках сервера.
Адрес сайта в настройках продукта меняют сразу после установки сертификата. Пока в настройках сайта остаётся незащищённый адрес, ссылки в письмах и в служебных переадресациях собираются по нему, и посетитель попадает на старый адрес.
Типичные проблемы
Выпуск сертификата не проходит без объяснений.
Домен не указывает на этот сервер. Проверка владения обращается к домену снаружи и не находит там нужный ответ.
В браузере компьютера всё в порядке, на телефоне ошибка.
В файле сертификата нет промежуточной цепочки. Настольный браузер достраивает её сам, мобильный клиент считает сертификат недоверенным.
Сертификат не продлился и истёк.
Он выпущен мимо меню окружения. Задание на продление создаёт команда выпуска, и для чужого сертификата его нет.
Страница открывается по https, но замок перечёркнут.
Часть картинок и скриптов грузится по незащищённому адресу. Смешанное содержимое браузер помечает даже при исправном сертификате.
После включения переадресации сломался обмен с 1С.
Переадресация применена ко всем адресам сразу. Служебные адреса обмена исключают из правила либо настраивают источник на защищённый адрес.
Частые вопросы
Бесплатного сертификата достаточно для магазина?
Да, шифрование у него такое же, как у платного. Платные отличаются страховкой и проверкой организации, а не стойкостью соединения.
Как перенести сертификат на другой сервер?
Копируют файл сертификата и закрытый ключ, затем прописывают пути в конфигурации нового сервера. Бесплатный проще выпустить заново: перенос не даёт выигрыша.
Можно ли повесить несколько сертификатов на один сайт?
На один домен - один сертификат. Несколько доменов на сервере получают каждый свой, и веб-сервер выбирает нужный по имени из запроса.
Почему после установки сайт открывается по старому адресу?
В настройках сайта в админке остался незащищённый адрес. Ссылки в письмах и служебные переадресации собираются по нему, а не по адресу из строки браузера.
Смежное
- BitrixVM и веб-окружение - оглавление подтемы
- Установка и настройка BitrixVM - меню и настройки сайта
- Заголовки безопасности и доступ в админку: HSTS, фреймы, адреса - постоянный HTTPS после выпуска сертификата
- Переадресация на другой домен - правила на уровне веб-сервера
- Сервер и поиск - устройство сервера целиком
- Редиректы внутри сайта: 301 на раздел, https и старые адреса - перевод сайта на https после выпуска
- Переезд на HTTPS: контент, база, интеграции - что делают после выпуска сертификата
- Сертификат не обновился: разбор причин - если продление не сработало