Ручная установка SSL сертификата

Материал из ISPWiki

Перейти к: навигация, поиск

Содержание

Установка SSL сертификата

Для установки сертификата потребуется:

  • Файл сертификата и цепочка сертификата. Центр сертификации присылает эти данные на почтовый ящик владельца сертификата.
  • Ключ сертификата. Он у вас должен быть. Ключ генерируется перед заказом сертификата, на основе ключа генерируется csr запрос.
  • Root доступ к серверу.


Собираем цепочку сертификата для различных типов сертификата

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

SSL сертификаты Comodo Essential SSL

Центром сертификации будут отправлены следующие файлы:

  • AddTrustExternalCARoot.crt
  • ComodoUTNSGCCA.crt
  • EssentialSSLCA_2.crt
  • domainname.crt
  • UTNAddTrustSGCCA.crt

domainname.crt - это непосредственно сам сертификат.

Остальные файлы нам нужны для того, чтобы получить цепочку:

cat EssentialSSLCA_2.crt ComodoUTNSGCCA.crt UTNAddTrustSGCCA.crt AddTrustExternalCARoot.crt > yourDomain.ca-bundle

SSL сертификаты Comodo PositiveSSL

Центром сертификации будут отправлены следующие файлы:

  • AddTrustExternalCARoot.crt
  • COMODORSAAddTrustCA.crt
  • COMODORSADomainValidationSecureServerCA.crt
  • domainname.crt

domainname.crt - это непосредственно сам сертификат. Остальные файлы нам нужны для того, чтобы получить цепочку:

cat COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt >  yourDomain.ca-bundle

Веб-сервер Apache

Если ssl запросы обрабатывает Apache, то сертификат устанавливается в файле конфигурации Apache. Проверить какой веб сервис отвечает на 443 (ssl) порту можно командой:

  • Linux:
# netstat -napt | grep 443
tcp        0      0 188.120.233.16:443      0.0.0.0:*               LISTEN      731/apache2
  • FreeBSD:
# sockstat |grep 443
root      httpd      83299 19 tcp4   188.120.225.20:443    *:*  

Для установки сертификата откройте конфигурационный файл Apache. На FreeBSD это /usr/local/etc/apache22/httpd.conf. Debian - /etc/apache2/apache2.conf. Centos - /etc/httpd/conf/httpd.conf. Найдите VirtualHost вашего домена.

Иногда вы можете найти блоки <VirtualHost> в отдельных файлах, в директории веб сервера.

Создайте блок <VirtualHost> для подключения SSL соединения. Пример:

<VirtualHost 10.0.0.1:443>
  DocumentRoot /home/user/data/www/domain.com
  ServerName domain.com
  SSLEngine on
  SSLCertificateFile /path/to/domain.crt
  SSLCertificateKeyFile /path/to/domain.key
  SSLCACertificateFile /path/to/ca.crt
</VirtualHost>

Где

  • domain.com — имя вашего домена.
  • 10.0.0.1 — ip адрес, на котором находится домен.
  • /home/user/data/www/domain.com — путь до домашней директории вашего домена.
  • /path/to/domain.crt — файл, в котором находится сертификат.
  • /path/to/domain.key — файл, в котором находится ключ сертификата.
  • /path/to/ca.crt - файл корневого сертификата.

Перезапустите Apache командой apachectl restart или apache2ctl restart

Веб-сервер Nginx

Если ssl запросы обрабатывает Nginx, то сертификат устанавливается в файле конфигурации Nginx.

Откройте конфигурационный файл Nginx. На FreeBSD это /usr/local/etc/nginx/nginx.conf, Linux - /etc/nginx/nginx.conf

Создайте серверный модуль для SSL соединения. Пример:

server {
        listen 10.0.0.1:443;
        server_name domain.com;
        ssl                  on;
        ssl_certificate     /path/to/domain.crt;
        ssl_certificate_key  /path/to/domain.key ;
  }

Где

  • domain.com — имя вашего домена.
  • 10.0.0.1 — ip адрес, на котором находится домен.
  • /path/to/domain.crt — файл, в котором находится сертификат.
  • /path/to/domain.key — файл, в котором находится ключ сертификата.

Цепочка сертификатов дописывается в файл с сертификатом.

Возьмем пример с Comodo Positive SSL. Центр сертификации присылает файлы domain.crt, PositiveSSLCA2 и AddTrustExternalCARoot. Цепочкой сертификата будет содержание файла PositiveSSLCA2 + AddTrustExternalCARoot. В итоге файл domain.crt должен содержать сертификат домена + сертификаты PositiveSSLCA2 + AddTrustExternalCARoot.

Перезапустите Nginx

  • FreeBSD:
/usr/local/etc/rc.d/nginx restart
  • Linux:
/etc/init.d/nginx restart

Несколько SSL сертификатов на одном ip адресе

Если используется несколько сертификатов на одном ip адресе, то браузер получит сертификат сервера по умолчанию, независимо от запрашиваемого имени сервера. Это связано с поведением протокола SSL. SSL-соединение устанавливается до того, как браузер посылает HTTP-запрос, и веб сервер не знает имени запрашиваемого сервера. Следовательно, он лишь может предложить сертификат сервера по умолчанию.

Решение для работы нескольких HTTPS-серверов на одном IP-адресе — расширение Server Name Indication протокола TLS (SNI, RFC 6066), которое позволяет браузеру передать запрашиваемое имя сервера во время SSL handshake, а значит сервер будет знать, какой сертификат ему следует использовать для соединения. Почти все современные браузеры поддерживают SNI, однако чтобы использовать SNI, соответствующая поддержка должна присутствовать также в библиотеке OpenSSL. OpenSSL поддерживает SNI начиная с версии 0.9.8f.

Полезные команды Openssl

  • Создание ключа для SSL-сертификата.
openssl req -batch -noout -new -newkey rsa:2048 -nodes -keyout cert.key
  • Генерация CSR-запроса:
openssl req -new -key cert.key -out cert.csr
  • Убрать пароль с ключа:
openssl rsa -in cert.key -out cert.key
  • Посмотреть данные CSR:
openssl req -noout -text -in cert.csr
  • Данные сертификата (проверить кем выдан, например):
openssl x509 -noout -text -in cert.crt
  • Проверить, что ключ соответствует сертификату:
openssl x509 -noout -modulus -in cert.crt | openssl md5
openssl rsa -noout -modulus -in cert.key | openssl md5

Два значения должны совпадать.

  • Узнать длину запроса:
echo '(' `openssl req -noout -modulus -in cert.csr | cut -d'=' -f2 | wc -c` '-1)*4' | bc
  • Проверить выдачу HTTPS:
openssl s_client -host  ulanovka.ru -port 443


Создание CSR запроса для Microsoft IIS

  • Нажмите Start - Administrative Tools - Internet Information Services (IIS) Manager.
  • Нажмите на имя сервера.
  • В разделе IIS откройте Server Certificates.

Файл:crt1.png

  • Затем справа из меню Actions выберите Create Certificate Request. Откроется окно мастера создания запроса.

Файл:crt2.png

  • Введите всю необходимую информацию.

Файл:crt3.png

Нажмите Next.

  • В следующем окне можно все оставить без изменений. Нажмите Next.
  • Введите имя вашего CSR файла.

Файл:crt4.png

  • Откройте файл, используя текстовый редактор. Для оформления сертификата передайте свой CSR вместе с тэгами BEGIN и END.


Установка SSL сертификата на Microsoft IIS

  • Нажмите Start - Administrative Tools - Internet Information Services (IIS) Manager.
  • Нажмите на имя сервера.
  • В разделе IIS откройте Server Certificates.

Файл:crt1.png

  • Затем справа из меню Actions выберите Complete Certificate Request. Откроется окно мастера.

Файл:crt5.png

  • Загрузите выданный Вам центром сертификации сертификат. Затем введите имя сертификата (оно необходимо только администратору для дальнейшей работы).

Файл:crt6.png

  • Нажмите Оk, и сертификат будет установлен на сервер.
  • Для того, чтобы установить данный сертификат на нужный веб-домен, перейдите в раздел Sites и выберите сайт, для которого заказан сертификат. Из меню Actions в правой части страницы нажмите на Bindings. Откроется окно Site Bindings.

Файл:crt7.png

  • В окне Site Bindings нажмите Add... Откроется окно Add Site Binding.

Файл:crt8.png

  • В меню Type выберите https. В меню IP address должен быть IP адрес сайта или All Unassigned. Порт - 443. В поле SSL Certificate выберите Ваш сертификат.

Файл:crt9.png

Нажмите Ok.

  • Ваш сертификат установлен.

Файл:crt10.png

Была ли эта информация полезной? Да | Нет
Личные инструменты