Установка ssl сертификата на локальный сайт

Skip to end of metadata
Go to start of metadata
Вы просматриваете старую версию данной страницы. Смотрите текущую версию. Сравнить с текущим  |   просмотр истории страницы

Введение

При работе личного кабинета абонента по https, используются автоматически сгенерированные самоподписанные сертификаты.

При этом, как правило, абонент получает в браузере предупреждение об использовании сайтом недоверенного сертификата.

Чтобы решить эту проблему, можно приобрести сертификат на используемое вами для локального сайта (обычно, доступного из внешней сети) доменное имя у авторизованного центра сертификации и установить его на сервер.

Сертификационные центры чаще всего используют трехуровневую схему подписей,

Для подписывания сайта понадобится публичный сертификат для вашего сайта с встроенным в него публичным ключем, секретный ключ от вашего сертификата и, дополнительно, сертификат промежуточного центра сертификации.

Сертификаты должны быть в формате PEM.

Получите нужные файлы у центра сертификации и по scp скопируйте их на сервер, например в директорию /tmp.

Поддерживаемые сертификаты

  1. Ru Center
  2. RapidSSL

Соответствие имён сертификатов от RU CENTER

Имена файлов могут отличаться. Например при использовании сертификатов от Thawte (в качестве посредника может быть RU CENTER), вы получите набор:

  • root_cert_sslwebserver.crt - соответствует ca_bundle.crt;
  • domain_name_date.crt - соответствует ca.crt в команде ниже;
  • private.key - обычно зашифрован и запаролен, соответствует ca.key в команде ниже;
  • domain.name.csr - не нужен.

Инструкция по установке сертификата

1. Внесите изменения в файл:

/app/asr_cabinet/etc/httpd/conf/httpd.conf

<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.             
        DocumentRoot /var/wordpress/
        AddDefaultCharset utf-8
    <Directory /var/wordpress>
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
    #Redirect to https!
    RewriteEngine Off
    #Check for POST Submission
    RewriteCond %{REQUEST_METHOD} !^POST$
    # Forcing HTTPS
    RewriteCond %{HTTPS} !=on [OR]
    RewriteCond %{SERVER_PORT} 80
    # Pages to Apply....
    RewriteCond %{REQUEST_URI} ^/cabinet.*
    RewriteRule .* https://%{SERVER_NAME}:443%{REQUEST_URI} [R=301,L]
    Redirect permanent / https://test.ru/
</VirtualHost>


<VirtualHost *:443>
    # The ServerName directive sets the request scheme, hostname and port that
    # the server uses to identify itself. This is used when creating
    # redirection URLs. In the context of virtual hosts, the ServerName
    # specifies what hostname must appear in the request's Host: header to
    # match this virtual host. For the default virtual host (this file) this
    # value is not decisive as it is used as a last resort host regardless.
    # However, you must set it for any further virtual host explicitly.<-
     DocumentRoot /var/wordpress/
     AddDefaultCharset utf-8
    <Directory /var/wordpress>
            Options Indexes FollowSymLinks
            AllowOverride All
    </Directory>
    SSLEngine on
    SSLProtocol all -SSLv2
    SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
    SSLCertificateFile /etc/pki/tls/certs/ca.crt
    SSLCACertificateFile /etc/pki/tls/certs/ca_bundle.crt
    #SSLVerifyClient require
    #   Server Private Key:
    #   If the key is not combined with the certificate, use this
    #   directive to point at the key file.  Keep in mind that if
    #   you've both a RSA and a DSA private key you can configure
    #   both in parallel (to also allow the use of DSA ciphers, etc.)
    SSLCertificateKeyFile /etc/pki/tls/private/ca.key
</VirtualHost>


Redirect permanent - значение задающее обязательную переадресацию на https версию сайта

SSLCACertificateFile - путь к промежуточному сертификату

SSLCertificateFile - путь к сертификату сайту

SSLCertificateKeyFile - путь к файлу ключа сертификата

Рекомендуем изменить порт ssl в переменной app['wordpress.sslport']='<номер порта>' на 443 в конфигурационном файле /app/asr_cabinet/cfg/config
app['wordpress.sslport']='443'
app['wordpress.use_ssl']='1'
app['wordpress.use_ssl.widget']='checkbox "Включить HTTPS в ЛК" "Включить HTTPS в ЛК"'

app['fiscal.ip']='169.254.14.44'
app['fiscal.port']='1444'

app['apache.port.widget']='readonly "Порт, на котором доступен локальный сайт" "Только для чтения"'

app['apache.sslip']='169.254.4.43'
app['apache.sslport']='8443'
app['apache.sslport.widget']='readonly "Порт, на котором доступен веб-интерфейс абонента" "Только для чтения"'

2. Скопируйте измененный файл конфигурации:

mkdir -p /app/asr_cabinet/cfg/etc/httpd/conf/
cp -p /app/asr_cabinet/etc/httpd/conf/httpd.conf /app/asr_cabinet/cfg/etc/httpd/conf/httpd.conf
После этого изменения в настройках личного кабинета по адресу <ip биллинга>:8081/settings/asr_cabinet/ не будут менять настройки веб-сервера

3. Скопируйте сертификаты в директорию сертификатов:

mkdir -p/app/asr_cabinet/cfg/etc/pki/tls/certs
mkdir -p /app/asr_cabinet/etc/pki/tls/certs
cp -p /tmp/ca.crt /app/asr_cabinet/cfg/etc/pki/tls/certs/ca.crt
cp -p /tmp/ca_bundle.crt /app/asr_cabinet/cfg/etc/pki/tls/certs/ca_bundle.crt
cp -p /tmp/ca.crt /app/asr_cabinet/etc/pki/tls/certs/ca.crt
cp -p /tmp/ca_bundle.crt /app/asr_cabinet/etc/pki/tls/certs/ca_bundle.crt

4. Скопируйте ключ для сертификата

# mkdir app/asr_cabinet/etc/pki/tls/private
# mkdir 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

Проверка корректности установки сертификата

Для проверки корректности установки сертификата необходимо перезапустить http сервер командой

chroot /app/asr_cabinet/
/etc/init.d/httpd restart

Если сертификат установлен корректно, то у Вас отобразится следующее:

Останавливается httpd:                                 [  OK  ]
Запускается httpd:                                          [  OK  ]

В том случае, если при запуске httpd отображается сбой, то необходимо проверить лог ошибок, который находится в /app/asr_cabinet/var/log/httpd/error_log.

После того, как сервис httpd корректно запустится, необходимо выполнить команду

/app/asr_cabinet/service restart

Если в результате перезапуска все сервисы стартовали со статусом [  OK  ], необходимо проверить корректность установки сертификата и переадресации на https при переходе в личный кабинет, например через браузер Firefox.

Используя браузер можно увидеть ошибки сертификата:

  • неверный сайт - вероятно, вы обращаетесь на сайт по ip, а сертификат выдан для домена. В комментарии вы увидите всю нужную информацию;
  • недоверенный сертификат - вероятно, вы не выгрузили серверный сертификат, либо выгрузили вместо него другой сертификат;
  • просроченный сертификат - вышел срок действия сертификата, нужно покупать новый.

Заказ сертификата RUcenter

Если вы хотите заказ свой сертификат для своего домена, то для начала вам нужно сгенерировать запрос на получение сертификата (CSR), подробнее вы можете посмотреть на сайте Руцентра.

По указанной ссылке доступна инструкция "Генерация CSR для Apache", для генерации запроса нужно выполнить шаги из инструкции.

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.