Установка SSL-сертификата от платного центра сертификации

Этот мануал поможет получить и установить SSL-сертификат от доверенного платного центра сертификации (ЦС).

SSL-сертификаты позволяют веб-серверам шифровать трафик, а также предлагают посетителям механизм проверки подлинности сервера. Основное преимущество платного SSL-сертификата от доверенного ЦС заключается в том, что посетители не будут получать отпугивающие предупреждения о невозможности проверить подлинность сайта (как это происходит в случае с самоподписанными сертификатами).

В этом мануале вы узнаете, как получить сертификат SSL от следующих доверенных центров сертификации:

  • GoDaddy
  • RapidSSL (via Namecheap)

Вы можете использовать другой ЦС. Затем вы научитесь устанавливать сертификаты на серверы Nginx и Apache.

Требования

  • Средства на покупку сертификата. За сертификаты коммерческих ЦС нужно платить. Лучшей бесплатной альтернативой являются сертификаты от Let’s Encrypt. Let’s Encrypt – это центр сертификации, который выдает бесплатные сертификаты SSL/TLS, которым доверяют большинство веб-браузеров.
  • Зарегистрированное доменное имя, для которого вы хотите использовать сертификат. Если у вас еще нет зарегистрированного домена, вы можете зарегистрировать его сейчас у одного из многочисленных регистраторов доменных имен.
  • Также вы должны иметь возможность доказать свои права на домен. Базовый процесс проверки требует, чтобы у вас был доступ к одному из адресов электронной почты в записи WHOIS домена или к адресу электронной почты администратора. Центры сертификации обычно проверяют права на домен, отправляя электронное письмо с подтверждением на один из этих адресов. Некоторые ЦС используют альтернативные методы проверки домена (это проверка на основе DNS или HTTP, которые выходят за рамки настоящего мануала). Если вы хотите получить сертификат OV или EV, вам также потребуется предоставить ЦС документы для установления владельца веб-сайта.
  • Веб-сервер, на который вы установите сертификат. Обычно для этого используют Apache HTTP, Nginx, HAProxy или Varnish. Чтобы настроить веб-сервер, доступный по вашему домену, выполните следующее:
    • Установите веб-сервер Nginx или Apache и настройте его для использования вашего домена.
    • Настройте соответствующие серверы имен.
    • Добавьте DNS-записи (читайте мануал Как настроить имя хоста).

1: Выберите центр сертификации

Если вы не уверены в том, какой центр сертификации лучше использовать, вам необходимо учесть несколько важных факторов. На общем уровне важно, чтобы выбранный вами ЦС предоставлял нужные функции по разумной для вас цене. В этом мы рассмотрим функции, которые нужно знать большинству покупателей сертификатов SSL.

Программы сертификации

Очень важно, чтобы выбранный вами ЦС был членом программ сертификации наиболее часто используемых операционных систем и веб-браузеров (то есть являлся «доверенным» ЦС), а его корневому сертификату доверяли обычные браузеры и другое программное обеспечение.

Если SSL-сертификат сайта подписывается доверенным ЦС, его подлинность подтверждается с помощью программного обеспечения, которое доверяет этому ЦС (чего не бывает с самоподписанными сертификатами, которые также предоставляют возможности шифрования, но вместо проверки подлинности выдают предупреждения).

Большинство коммерческих ЦС, с которыми вы столкнетесь, будут членами общих программ и будут сообщать, что они совместимы с 99% браузеров, но не нужно верить всем на слово. Проверьте эту информацию, прежде чем совершать покупку сертификата. Например, Apple предоставляет список доверенных сертификатов SSL для iOS8.

Типы сертификатов

Читайте также: Краткое сравнение центров сертификации SSL

Убедитесь, что ЦС предлагает сертификаты необходимого вам типа.

Некоторые сертификаты выдаются для одного домена (поддомены не поддерживаются). Бывают сертификаты, предназначенные для нескольких доменов и поддоменов, которые вносятся в поле Subject Alternative Name. Такие сертификаты называются SAN или UC. Wildcard сертификаты действительны для целого ряда имен поддоменов, в отличие от других сертификатов, которые действительны только для определенного полного доменного имени.

Существуют сертификаты таких типов:

  • Сертификат, подтверждающий домен (DV) выдается, только если пользователь может доказать ЦС, что он является владельцем указанного домена. Для проверки домена ЦС обычно запрашивает токены веб-сервера или записи DNS.
  • Сертификат, подтверждающий домен и организацию (OV): если сертификат подтверждает подлинность организации, значит, ЦС смог проверить название и адрес компании в публичных базах данных.
  • Сертификат с расширенной проверкой (EV): это более тщательный вид проверки. Для получения сертификата EV нужно подтвердить не только владение доменом, но также местонахождение юридического лица, запрашивающего сертификат. В отличие от сертификатов DV и OV, EV нельзя использовать как wildcard сертификат.

Данный мануал поможет вам получить сертификат для одного домена или wildcard сертификат от GoDaddy и RapidSSL. Процесс получения других типов сертификатов очень похож.

Другие функции

Многие ЦС предлагают широкий спектр бонусных функций, чтобы выделяться среди остальных поставщиков SSL-сертификатов. Некоторые из этих функций могут в конечном итоге сэкономить вам деньги, поэтому важно, чтобы вы тщательно взвесили свои потребности, прежде чем совершать покупку.

2: Сгенерируйте запрос на сертификат и закрытый ключ

Определившись с ЦС, отправьте ему запрос на сертификат.

Если вы планируете использовать Apache HTTP или Nginx в качестве веб-сервера, используйте openssl для создания закрытого ключа и запроса. В этом мануале мы просто сохраним все соответствующие файлы в домашнем каталоге, но вы можете сохранить их в любом другом безопасном месте на сервере:

cd ~

Чтобы сгенерировать закрытый ключ (example.com.key) и запрос на сертификат (example.com.csr), запустите эту команду (замените example.com своим доменом):

openssl req -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr

На этом этапе команда запросит у вас информацию, которую затем включит в запрос сертификата. Наиболее важной частью является поле Common Name: здесь нужно указать домен, который вы хотите использовать в сертификате (например, example.com, www.example.com или *.example.com для wildcard сертификата). Если вы планируете получать сертификат OV или EV, убедитесь, что все остальные поля сообщают точные данные о вашей организации или бизнесе.

Вот пример:

Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New York
Locality Name (eg, city) []:New York
Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:example.com
Email Address []:8host@example.com

Это сгенерирует файлы .key и .csr. Файл .key – это закрытый ключ, его нужно хранить в секрете. Второй файл – это запрос на сертификат, который нужно отправить ЦС.

Вам необходимо будет скопировать и вставить свой файл CSR при отправке запроса в ЦС. Чтобы отобразить содержимое этого файла, используйте эту команду (замените имя файла):

cat example.com.csr

Теперь можно купить сертификат.

Пример 1: Покупка сертификата RapidSSL через Namecheap

Namecheap предоставляет возможность покупать сертификаты SSL от различных ЦС. В этом разделе вы узнаете процесс приобретения сертификата на RapidSSL.

Примечание: Если на RapidSSL вы запрашиваете сертификат для субдомена www вашего домена (например, www.example.com), сервис выдаст сертификат с SAN вашего базового домена. Например, если запрос сертификата предназначен для www.example.com, полученный сертификат будет работать как для www.example.com, так и для example.com.

Выберите и закажите сертификат

Откройте эту страницу.

Здесь можно выбрать уровень валидации и тип сертификата.

В Domain Validation выберите Compare Products, найдите RapidSSL и нажмите Add to Cart.

Теперь нужно зарегистрироваться или войти в Namecheap.

Запросите сертификат

Заплатив за сертификат, откройте ссылку Manage SSL Certificates.

Здесь вы увидите список всех SSL-сертификатов, которые вы приобрели через Namecheap. Нажмите ссылку Activate Now, чтобы активировать сертификат, который вы хотите использовать.

Теперь выберите программное обеспечение вашего веб-сервера. Это определит формат сертификата, который предоставит Namecheap. Обычно выбирают «Apache + MOD SSL», «nginx» или «Tomcat».

Вставьте ваш запрос сертификата и кликните Next.

Теперь вы должны быть на странице «Select Approver», которая отправит электронное письмо с запросом подтверждения на электронный адрес в записи WHOIS домена или на адрес администратора домена. Укажите адрес, на который нужно отправить письмо с подтверждением.

Предоставьте данные Administrative Contact Information». Нажмите Submit order.

Подтвердите права на домен

Проверьте свою почту, найдите письмо от ЦС и подтвердите запрос сертификата.

Загрузите сертификат

После подтверждения сертификат будет отправлен по электронной почте в Technical Contact. Сертификат, выданный для вашего домена, и промежуточный сертификат ЦС будет прикреплен к письму.

Скопируйте и сохраните файлы на сервере в том же месте, где вы создали свой закрытый ключ и запрос. В имени сертификата укажите домен и расширение .crt (например. example.com.crt), промежуточный сертификат должен называться intermediate.crt.

Теперь сертификаты готовы к установке.

Пример 2: GoDaddy

GoDaddy – популярный ЦС, он предлагает все основные типы сертификатов. Мы рассмотрим процесс приобретения сертификата для одного домена, но вы можете выбрать другой тип сертификата.

Выберите и закажите сертификат

Откройте эту страницу.

Нажмите кнопку Get Started.

Выберите тип SSL-сертификата в выпадающем меню.

Затем выберите план сертификата (DV, OV, EV).

Далее нужно выбрать срок действия сертификата.

Нажмите Add to Cart.

Просмотрите свой текущий заказ, затем нажмите кнопку Proceed to Checkout. Завершите процесс регистрации и оплаты.

Запросите сертификат

После завершения заказа нажмите кнопку SSL Certificates (или My Account > Manage SSL Certificates в правом верхнем углу).

Найдите сертификат SSL, который вы только что приобрели, и нажмите кнопку Set Up. Если вы ранее не использовали сертификаты GoDaddy, вам будет предложено настроить продукт SSL Certificates и связать свой недавний заказ с продуктом (нажмите зеленую кнопку Set Up и подождите несколько минут, затем обновите браузер).

Добавив в учетную запись GoDaddy продукт SSL Certificates, вы увидите свой новый сертификат New Certificate и кнопку Launch. Нажмите кнопку Launch рядом с новым сертификатом.

Предоставьте свой файл CSR. По умолчанию используется алгоритм SHA-2.

Поставьте галочку I agree и нажмите кнопку Request Certificate.

Подтвердите права на домен

Теперь вам нужно будет доказать, что у вас есть права на домен, и предоставить GoDaddy несколько документов. GoDaddy отправит электронное письмо с подтверждением прав на домен по адресу, указанному в записи WHOIS. Следуйте инструкциям в письме и подтвердите выдачу сертификата.

Загрузите сертификат

После проверки прав на домен откройте свою электронную почту (которую вы указали в запросе сертификата GoDaddy) и найдите там сообщение, в котором говорится, что вы получили сертификат SSL. Откройте его и перейдите по ссылке для загрузки сертификата (или нажмите кнопку Launch рядом с сертификатом SSL в панели управления GoDaddy).

Нажмите Download.

Выберите программное обеспечение веб-сервера в выпадающем меню Server type. Если вы используете Apache HTTP или Nginx, выберите «Apache», затем нажмите кнопку Download Zip File.

Распакуйте архив. В нем будет два файла .crt: сертификат SSL (имя будет выбрано случайно) и промежуточный сертификат GoDaddy (gd_bundle-g2-1.crt).  скопируйте эти файлы с расширением .crt и укажите в имени файла свой домен (например, example.com.crt для сертификата и intermediate.crt для промежуточного сертификата).

3: Установите сертификат на веб-сервер

Получив сертификат, нужно установить его на веб-сервер. Для этого нужно добавить данные SSL в конфигурации.

В данном разделе вы узнаете, как добавить сертификат на Nginx и Apache в Ubuntu 14.04.

  • Закрытый ключ, сертификат SSL и промежуточные сертификаты ЦС должны находиться в домашнем каталоге /home/8host
  • Закрытый ключ называется example.com.key
  • Сертификат SSL называется example.com.crt
  • Промежуточные сертификаты ЦС находятся в файле intermediate.crt
  • Если у вас включен брандмауэр, убедитесь, что он пропускает трафик на порт 443 (HTTPS)

Примечание: В реальной среде эти файлы должны храниться в каталогах, к которым может обратиться только главный пользователь веб-сервера (обычно root). Закрытый ключ должен храниться в секрете.

Nginx

Если ЦС добавил промежуточные сертификаты, нужно объединить их с файлом example.com.crt в единый сертификат.

Перейдите в каталог, в котором хранится закрытый ключ, сертификат и промежуточные сертификаты ЦС (в файле intermediate.crt). Предположим, что они находятся в домашнем каталоге.

cd ~

Используйте эту команду для создания комбинированного файла example.com.chained.crt (укажите в команде свой домен):

cat example.com.crt intermediate.crt > example.com.chained.crt

Откройте каталог виртуальных хостов Nginx.

cd /etc/nginx/sites-enabled

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

sudo vi default

Найдите директиву listen и измените ее так:

listen 443 ssl;

Затем найдите директиву server_name и убедитесь, что ее значение совпадает с полем common name сертификата. Также нужно добавить директивы ssl_certificate и ssl_certificate_key, чтобы указать пути к сертификату и закрытому ключу.

server_name example.com;
ssl_certificate /home/8host/example.com.chained.crt;
ssl_certificate_key /home/8host/example.com.key;

Чтобы разрешить только самые безопасные SSL-протоколы и шифры, добавьте следующие строки в файл:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

Если вы хотите перенаправить HTTP-трафик на HTTPS, вы можете добавить этот блок server в начало файла:

server {
listen 80;
server_name example.com;
rewrite ^/(.*) https://example.com/$1 permanent;
}

Сохраните и закройте файл.

Перезапустите Nginx, чтобы обновить настройки.

sudo service nginx restart

Проверьте работу сайта в браузере по ссылке:

https://example.com.

Apache

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

cd /etc/apache2/sites-available
cp 000-default.conf 000-default.conf.orig

Откройте файл в редакторе:

sudo vi 000-default.conf

Найдите запись <VirtualHost *:80> и укажите в ней порт 443.

<VirtualHost *:443>

Добавьте директиву ServerName, если ее еще нет:

ServerName example.com

Добавьте следующие строки, чтобы указать пути к сертификату и ключу.

SSLEngine on
SSLCertificateFile /home/8host/example.com.crt
SSLCertificateKeyFile /home/8host/example.com.key

Укажите промежуточные сертификаты ЦС:

SSLCACertificateFile /home/8host/intermediate.crt

Теперь сервер прослушивает только HTTPS (порт 443), потому запросы HTTP (порт 80) обслуживаться не будут. Чтобы перенаправить HTTP на HTTPS, добавьте в начало файла такой блок:

<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>

Сохраните и закройте файл.

Включите модуль SSL:

sudo a2enmod ssl

Перезапустите Apache, чтобы обновить параметры:

sudo service apache2 restart

Проверьте, как работает сайт по HTTPS и HTTP:

https://example.com
http://example.com

Читайте также:

Tags: ,