Установка ssl сертификата битрикс на Apache
Добрый день уважаемые читатели и подписчики, сегодня хочу вам рассказать свой опыт установки ssl сертификата битрикс на Apache. Расскажу небольшую предысторию. Достался мне по наследству сервер CentOS 7, на котором крутилось 3 сайта на CMS 1С Битрикс, ее очень часто используют для интернет магазинов или различных корпоративных порталов. В один из прекрасных дней приходит письмо, о том что у нас заканчивается срок действия SSL сертификата и нужно его продлевать, но загвоздка оказалось в том, что два сайта работали на nginx, а нужный на Apache, а так как не я все это дело настраивал, то пришлось покопаться, чтобы найти нужное место и конфиграционный файл, но обо всем более подробно чуть ниже.
Как установить ssl сертификат на сайт битрикс
Для начала, если вы у вас похожая ситуация и у вас несколько сайтов и вы не знаете на каком веб сервере они работают, то вам поможет в этом разобраться моя статья (Как узнать вебсервер сайта). Если у вас как и у меня Apache, то читаем далее, про Nginx я расскажу в самом низу. Если кто не знает, то апач все пути к сертификатам имеет в конфигурационном файле, который лежит по пути:
В Debian это /etc/apache2/
Попав в нужное расположение Apache я сразу обнаружил ssl сертификат битрикса.
Как видите тут один сертификат формата *.cer (открытый ключ), а второй с *.key это закрытый ключ. Далее я обнаружил папку ssl, в которой располагались корневые сертификаты удостоверяющего центра сертификации, необходимые для проверки цепочки. Их тут тоже два и у них формат *.cer.
Все с местом дислокации сертификатов определились, теперь нужно понять в каком файле они прописываются и они ли это. Я сделал резервную копию этих файлов, благодаря тому, что подключился по ssh с помощью WinSCP. После чего удалил файл *.key и *.cer. Перезапускаем службу Apache на bitrix.
В итоге я увидел ошибку Starting httpd: Syntax error on line 117 of /etc/httpd/bx/conf/bx_ext_e-disclosure.azipi.ru.conf:
SSLCertificateFile: file '/etc/httpd/e-disclosure.azipi.ru.cer' does not exist or is empty
Тут нам белым по черному написали, что в конфигурационном файле /etc/httpd/bx/conf/bx_ext_e-disclosure.azipi.ru.conf прописан путь до сертификата /etc/httpd/e-disclosure.azipi.ru.cer и он сейчас не доступен. Значит это были те сертификаты, что я удалил.
Дело осталось за малым, нужно было подменить старые сертификаты на новые. Я их заказывал у Comodo на 3 года за 1800 рублей. Я получил от удостоверяющего центра архив, в котором были:
- Открытый ключ
- Ключи цепочки
Закрытый ключ (private ключ) у вас должен был быть после создания вами CSR запроса к CA.
Теперь переходим в конфигурационный файл /etc/httpd/bx/conf/ваш конфиг с названием сайта и ищем строки:
- SSLCertificateFile /etc/httpd/e-disclosure.azipi.ru.cer
- SSLCertificateKeyFile /etc/httpd/e-disclosure.azipi.ru.key
- SSLCertificateChainFile /etc/httpd/ssl/CACertificate-1.cer
- SSLCertificateChainFile /etc/httpd/ssl/CACertificate-2.cer
В них прописаны точные пути до сертификатов, по этим путям с этими же названиями вам необходимо подложить новые SSL для вашего битрикс.
После замены нужных сертификатов, перезапускаете службу Apache и проверяете работу нового ssl сертификата битрикс. У меня все отлично преминилось, новый SSL до 2020 года.
Как видите установка ssl на bitrix, довольно простое дело. И как обещал немного о Nginx, так как ваш сайт может работать на нем. На данном веб сервере, для начала нужно объединить все ваши сертификаты в один с форматом *.pem, делается это командой.
cd /etc/nginx/ssl/1/
скопируйте туда все сертификаты полученные от центра сертификации, после чего выполните команду
cat vash_domen.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > cert.pem
Ваши имена файлом могут отличаться
В итоге вы получили файл cert.pem
Полученный файл сертификата cert.pem скопировать в папку /nignx/ssl/, заменив старый файл, и прописать в конфигурационном файле nginx путь к публичному ключу
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/private.key;
Перезагружаем nginx
[root@1 conf]# service nginx restart
Stopping nginx: [ OK ]
Starting nginx: [ OK ]
Установка ssl сертификата битрикс и на Nginx так же простое дело. Еще напоминаю, что закрытый ключ вы должны сильно оберегать, так как его компрометация сделает ваш сервер не доверенным.