то ждем ваше обращение в нашей службе тех поддержки.
Ssl-cертификат для сайта, работающего на машине bitrix vm следует устанавливать в веб-сервер nginx.
Делается это вручную, путем правки конфигурации веб-сервера nginx. Рассмотрим эту операцию пошагово.
Во-первых, нужно купить и иметь на руках файлы сертификата в нужном формате для веб-сервера nginx. Иногда приходится создавать такие файлы вручную. В интернете есть статьи, о том, как получить два файла domain_ru.crt и domain_ru.key
1/
Необходимо скопировать эти два сайта в папку /etc/nginx/ssl/
Предполагается, что сертификаты всех сайтов, расположенных на текущем bitrix vm, будут храниться в данной папе.
2/
Затем необходимо открыть и отредактировать файлы конфигурации сайта
/etc/nginx/bx/site_avaliable/bx_ext_domain.ru.conf
/etc/nginx/bx/site_avaliable/bx_ext_ssl_domain.ru.conf
Примечание: если ваш сайт установлен в папку /home/bitrix/www, то редактировать нужно файлы
/etc/nginx/bx/site_avaliable/s1.conf
/etc/nginx/bx/site_avaliable/ssl.s1.conf
3/
В файл /etc/nginx/bx/site_avaliable/bx_ext_ssl_domain.ru.conf необходимо включить наши файлы сертификата.
Для этого комментируем строчку include bx/conf/ssl.conf; (вставляем впереди нее #)
а вместо нее вставляем содержимое файла /etc/nginx/bx/conf/ssl.conf
server { listen 443 ssl; server_name domain.ru www.domain.ru; # enable SSL connection #include bx/conf/ssl.conf; access_log /var/log/nginx/domain.ru_access.log main; …
4/
Когда мы вставили содержимое файла /etc/nginx/bx/conf/ssl.conf вместо строчки, необходимо указать наши файлы в строчках ssl_certificat и ssl_certificate_key:
server { listen 443 ssl; server_name domain.ru www.domain.ru; # enable SSL connection #include 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; # … # SSL encryption parameters ssl on; #... ssl_certificate /etc/nginx/ssl/domain_ru.crt; ssl_certificate_key /etc/nginx/ssl/domain_ru.key; # …
5/
Теперь нам нужно отредактировать файл /etc/nginx/bx/site_avaliable/bx_ext_domain.ru.conf таким образом, чтобы происходил редирект сайта с http://domain.ru на https://domain.ru
Примечание: СЕО-продвиженцы часто требуют, чтобы редирект не распространялся на файл robots.txt, это мы и учитываем здесь
server { listen 80 ; server_name domain.ru www.domain.ru; #... # Redirect to ssl if need if (-f /home/bitrix/ext_www/domain.ru/.htsecure) { return 301 https://$host$request_uri; } # добавляем эти три строчки: if ($request_uri !~* "/robots.txt") { rewrite ^(.*)$ https://$host$1 permanent; } #...
Примечание: если не требуется добавить файл robots.txt в исключение, то достаточно создать файл в корне сайта /home/bitrix/ext_www/domain.ru/.htsecure с пустым содержимым. По этому же файлу меню виртуальной машины определяет режим работы сайта по https.
6/
проверяем успешность операции и перезапускаем ngixn для применения настроек
[root@server~]# service nginx configtest
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Если возникли ошибки в конфигурации – их нужно устранить. Если все успешно – перезапускам nginx для применения настроек
7/
Перезапуск nginx
[root@server~]# service nginx restart
Stopping nginx: [ OK ]
Starting nginx: [ OK ]
Примечание: Чаще всего после этой операции еще требуется устранить ошибки mixed-content (перечеркнутый замочек). Это обозначает, что на сайте в исходном коде html присутствуют картинки, стили, и прочие файлы, которые открывается по протоколу http. Исправление этой ошибки всегда специфично (поиск таких мест, и указание у них https впереди, либо просто ресурс без протокола //), поэтому выходит за рамки данной статьи. С целью безопасности, браузеры требуют, чтобы все ресурсы сайта (картинки, скрипты, стили…) также открывались по https.
Назад в раздел