|
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (22)
просмотр истории страницы... |
[https://letsencrypt.org] |
Выдержка из руководства "Приступая к работе" с сайта letsencrypt.org: _...Установите Certbot на ваш компьютер для запуска в [ручном режиме|https://certbot.eff.org/docs/using.html#manual]. Загрузите специальный файл в папку сайта, чтобы подтвердить факт владения. Certbot создаст сертификат для доменного имени этого сайта, для последующей отправки на web-сервер..._ |
К сожалению, поддержка CentOS 6 в Certbot от Let's Encrypt прекращена, и установить его на биллинг достаточно проблематично. |
|
Но Вы можете: * [cоздать сертификат вручную на стороннем сервере|https://certbot.eff.org/docs/using.html#manual] * [или онлайн|https://www.sslforfree.com] и положить вручную на сервер биллинга по инструкции далее. |
h2. Инструкция по установке сертификата |
... |
# Внесите изменения в конфигурационный файл Apache: */app/asr_cabinet/etc/httpd/conf/httpd.conf* |
#* В настройках *<VirtualHost \*:80>* змените *RewriteCond %\{REQUEST_URI\} ^/cabinet.* на *RewriteCond %\{HTTPS\} off* чтобы HTTPS был включен глобально на сайт, а не только личный кабинет. Должно получиться приблизительно следующее: \\ \\ |
Замените *RewriteEngine Off* на *RewriteEngine On*, чтобы включить движок редиректов. Должно получиться приблизительно следующее: \\ \\ |
{code}<VirtualHost *:80> DocumentRoot /var/wordpress/ |
... |
# Скопируйте ключ для сертификата {code} |
mkdir -p /app/asr_cabinet/etc/pki/tls/private |
mkdir -p /app/asr_cabinet/cfg/etc/pki/tls/private |
cp -p /tmp/ca.key /app/asr_cabinet/cfg/etc/pki/tls/private/ca.key cp -p /tmp/ca.key /app/asr_cabinet/etc/pki/tls/private/ca.key |
... |
* *просроченный сертификат* \- вышел срок действия сертификата, нужно покупать новый. |
h3. Проверка срока действия сертификата |
h2. Два доменных имени для локального сайта |
|
Иногда для сайта регистрируют два доменных имени. Например в разных зонах example.com и example.org . Для работы обоих доменных имён в личном кабинете нужно настроить виртуальные хосты вэб-сервера. Дополнение к выше приведённой инструкции: # Откройте конфигурационный файл {code} /app/asr_cabinet/cfg/etc/httpd/conf/httpd.conf {code} # Добавье в секцию имени хостов *Section 3: Virtual Hosts* строчку: {code} NameVirtualHost *:443 {code} Так выглядит конечный результат: {code} NameVirtualHost *:8888 NameVirtualHost *:442 NameVirtualHost *:441 NameVirtualHost *:440 NameVirtualHost *:444 NameVirtualHost *:445 NameVirtualHost *:8443 NameVirtualHost *:443 {code} # Добавьте опцию *ServerName* для первого домена в описание хоста: {code} <VirtualHost *:443> DocumentRoot /var/wordpress/ AddDefaultCharset utf-8 ServerName example.com <Directory /var/wordpress> Options Indexes FollowSymLinks AllowOverride All </Directory> SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW SSLCACertificateFile /etc/pki/tls/certs/ca_bundle.crt SSLCertificateFile /etc/pki/tls/certs/ca.crt #SSLVerifyClient require SSLCertificateKeyFile /etc/pki/tls/private/ca.key </VirtualHost> {code} # Продублируйте блок *VirtualHost* с настройкой *ServerName* для второго домена: {code} <VirtualHost *:443> ... ServerName example.com ... </VirtualHost> <VirtualHost *:443> ... ServerName example.org ... </VirtualHost> {code} # Проведите настройку сертификата для второго домене example.org как указано в разделе [Инструкция по установке сертификата|Установка SSL-сертификата на локальный сайт#Инструкция по установке сертификата]. {note} Нужно учесть, что имена файлов сертификата для второго домена должны отличаться от первого. {note} То есть, примерно так: {code} <VirtualHost *:443> ... ServerName example.com ... SSLCertificateFile /etc/pki/tls/certs/ca_example_COM.crt SSLCertificateKeyFile /etc/pki/tls/private/ca_example_COM.key SSLCACertificateFile /etc/pki/tls/certs/ca_bundle_COM.crt ... </VirtualHost> <VirtualHost *:443> ... ServerName example.org ... SSLCertificateFile /etc/pki/tls/certs/ca_example_ORG.crt SSLCertificateKeyFile /etc/pki/tls/private/ca_example_ORG.key SSLCACertificateFile /etc/pki/tls/certs/ca_bundle_ORG.crt ... </VirtualHost> {code} # Перезапустите контейнер личного кабинета для применения настроек: {code} /app/asr_cabinet/service restart {code} h2. Проверка срока действия сертификата |
Вы можете узнать информацию по сертификату программой *openssl*. Этой командой можно узнать срок действия сертификата: |
... |
* *After* - время окончания действия |
h3. Отладка |
Вы так же можете проверить срок действия с помощью команды: {code} cat /cfg/etc/pki/tls/certs/ca.crt | openssl x509 -noout -enddate {code} |
|
Если при запуске *httpd* отображается сбой: 1. Необходимо проверить лог ошибок, который находится в */app/asr_cabinet/var/log/httpd/error_log.* 2. Провести проверку соответствия сертификата и ключа. Для проверки необходимо вычислить md5 хэш модуля каждого файла. Равенство хэша означает соответствие private key и сертификата |
h2. Отладка |
|
Вычисление хэша ключа выполняется под chroot /app/asr_cabinet/ |
Если при запуске *httpd* отображается сбой, Вы можете попробовать найти причину в логе */app/asr_cabinet/var/log/httpd/error_log.*: по типовым ошибкам и как их решать очень много информации в интернете: как правило, это ошибки синтаксиса в файлах конфигурации (не хватает каких-то символов, лишние символы, "директивы" не на своём месте и тд). |
|
{code}openssl rsa -modulus -noout -in /etc/pki/tls/private/ca.key | openssl md5{code} |
h3. Закрытый ключ не подходит к сертификату |
|
Вычисление хэша сертификата |
Проверьте соответствие сертификата и его ключа консольными команда. Для этого необходимо вычислить md5 хэш модуля каждого файла. Равенство хэша означает соответствие private key и сертификата # Зайдите в контейнер: {code}chroot /app/asr_cabinet/{code} # Проверьте контрольную сумму файла сертификата {code}openssl rsa -modulus -noout -in /etc/pki/tls/private/ca.key | openssl md5{code} # Проверьте контрольную сумму закрытого ключа |
{code}openssl x509 -modulus -noout -in /cfg/etc/pki/tls/certs/ca.crt | openssl md5{code} |
Значения (stdin)= 342bd7490c3b79c8******* должны совпасть после выполнения обеих команд. |
Если в выводе будут разные значения: значит, ошибка в этом. h4. Как исправить # Положите на сервере правильную пару сертификата и закрытого ключа # Перезапустите веб-сервер: {code}chroot /app/asr_cabinet/ service httpd restart{code} h3. Сертификат установили, но при открытии сайта всё равно ошибка сертификата. Как проверить, на какой домен выдан сертификат? Зайдите на сервер по SSH и выполните проверку утилитой curl: {code:title=grep subject <(curl -ssvvkI https://169.254.0.80:443 2>&1)} * subject: CN=10.90.185.127,OU=Fiscal secure web server,O=Carbon_Billing {code} В примере выше сертификат самоподписной, это видно по тексту *CN=10.90.185.127*: CN означает "Common Name", то есть домен для которого сертификат выдан. Тут должен быть Ваш домен. Например, если сайт и ЛК должны быть доступны по адресу *example.com*, вывод команды должен быть примерно следующим: {code} * subject: CN=example.com {code} h4. Как исправить # Купите сертификат на Ваш домен или создайте бесплатный с помощью Let's Encrypt (на другом сервере). # Настройте сервер по инструкции выше h2. Восстановление стандартных настроек # Сохраните конфигурационный файл {code} mv /app/asr_cabinet/cfg/etc/httpd/conf/httpd.conf /root/ {code} # Перезапустите контейнер личного кабинета {code} /app/asr_cabinet/service restart {code} |