Поиск по сайту:

Как установить SSL-сертификат от коммерческого центра сертификации


Введение

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

До середины 2010-х многие небольшие веб-сайты не всегда использовали SSL или HTTPS. С тех пор ожидания в отношении безопасности возросли, и проект Let’s Encrypt был создан для предоставления бесплатных доверенных SSL-сертификатов в масштабе, что позволяет почти всем использовать HTTPS по мере необходимости.

Однако у сертификатов Let’s Encrypt есть некоторые ограничения. Срок их действия истекает каждые 3 месяца, обычно требуется наличие функционирующего сценария автоматического обновления, и их может быть неудобно использовать в средах, где это невозможно. Let's Encrypt также не предоставляет сертификаты расширенной проверки, подтверждающие законное право собственности на ваше присутствие в Интернете, или сертификаты с подстановочными знаками, которые будут автоматически соответствовать всем возможным поддоменам вашего веб-сайта (например, shop.example.com) без вашего участия. необходимость регистрировать каждый из них вручную.

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

В этом руководстве рассказывается, как выбрать и развернуть сертификат SSL из доверенного центра сертификации. После того, как вы приобрели свой SSL-сертификат, в этом руководстве будет рассказано об его установке на веб-серверах Nginx и Apache.

Предпосылки

Есть несколько обязательных условий для получения SSL-сертификата от коммерческого ЦС:

  • Зарегистрированное доменное имя. В этом руководстве везде будет использоваться example.com. Вы можете приобрести доменное имя у Freenom или воспользоваться услугами регистратора доменов по вашему выбору.
  • Доступ к одному из адресов электронной почты в записи WHOIS вашего домена или к адресу электронной почты типа «администратор» в самом домене. Центры сертификации, выдающие SSL-сертификаты, обычно проверяют управление доменом, отправляя электронное письмо с подтверждением на один из адресов в домене. записи WHOIS домена или на общий адрес электронной почты администратора в самом домене.Чтобы получить сертификат расширенной проверки, вам также потребуется предоставить CA документы для установления юридической личности владельца веб-сайта, среди прочего.
  • Записи DNS настроены для вашего сервера. Если вы используете DigitalOcean, ознакомьтесь с нашей документацией по DNS, чтобы узнать, как их добавить.

В этом руководстве представлены инструкции по настройке сервера Ubuntu 22.04, настроенного в соответствии с этим руководством по начальной настройке сервера для Ubuntu 22.04, включая пользователя без полномочий root с поддержкой sudo и брандмауэр. Большинство современных вариантов Linux будут работать аналогичным образом.

У вас также должен быть установлен веб-сервер, такой как Nginx или Apache, после блока сервера (или виртуального хоста Apache) для вашего домена.

Шаг 1 – Выбор центра сертификации

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

Членство в программе корневых сертификатов

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

Большинство коммерческих ЦС, с которыми вы столкнетесь, будут членами общих программ корневых ЦС, но не помешает проверить это перед покупкой сертификата. Например, Apple публикует свой список доверенных корневых сертификатов SSL.

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

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

  • Один домен: используется для одного домена, например. example.com. Обратите внимание, что дополнительные субдомены, такие как www.example.com, не включены
  • Подстановочный знак: используется для домена и любого из его поддоменов. Например, подстановочный сертификат для *.example.com можно также использовать для www.example.com и store.example.com
  • Несколько доменов: Известные как сертификаты SAN или UC, их можно использовать с несколькими доменами и поддоменами, которые добавляются в поле Альтернативное имя субъекта. Например, один мультидоменный сертификат можно использовать с example.com, www.example.com и example.net

В дополнение к вышеупомянутым типам сертификатов центры сертификации предлагают различные уровни проверки:

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

Дополнительные возможности

Многие центры сертификации предлагают большое разнообразие «бонусных» функций, чтобы отличаться от остальных поставщиков сертификатов SSL. Некоторые из этих функций могут в конечном итоге сэкономить вам деньги, поэтому важно, чтобы вы сопоставили свои потребности с предложениями, прежде чем при совершении покупки. Примеры функций, на которые следует обратить внимание, включают бесплатный повторный выпуск сертификата или сертификат с оплатой за один домен, который работает для www. и базового имени домена, например www.example.com с SAN example.com

Шаг 2 – Генерация CSR и закрытого ключа

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

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

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

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

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

Например:

Output
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 []:sammy@example.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:

Это создаст файлы .key и .csr. Файл .key — это ваш закрытый ключ, и его следует хранить в безопасности. Файл .csr — это то, что вы отправляете в центр сертификации, чтобы запросить сертификат SSL.

  1. ls example.com*
Output
example.com.csr example.com.key

Вам нужно будет скопировать и вставить CSR при отправке запроса на сертификат в ЦС. Чтобы распечатать содержимое CSR, используйте cat:

cat example.com.csr

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

Шаг 3 – Покупка и получение сертификата

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

После выбора вам нужно будет загрузить CSR, который вы создали на предыдущем шаге. У вашего поставщика ЦС также, вероятно, будет шаг \Утверждающий, который отправит электронное письмо с запросом на подтверждение на адрес в записи WHOIS вашего домена или на адрес типа administrator домена, который вы получаете. сертификат на.

После утверждения сертификата он будет отправлен указанному администратору по электронной почте. Скопируйте и сохраните их на свой сервер в том же месте, где вы создали свой закрытый ключ и CSR. Назовите сертификат доменным именем и расширением .crt, например. example.com.crt и назовите промежуточный сертификат intermediate.crt.

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

Шаг 4. Обновление брандмауэра для разрешения HTTPS

Если у вас включен брандмауэр ufw в соответствии с рекомендациями нашего руководства по установке Ubuntu 22.04, вам необходимо изменить настройки, чтобы разрешить HTTPS-трафик. Nginx и Apache регистрируют несколько профилей с помощью ufw при установке.

Вы можете увидеть текущую настройку, набрав:

  1. sudo ufw status

Если вы получаете выходные данные, содержащие только Nginx HTTP или Apache, к веб-серверу разрешен только HTTP-трафик:

Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)

Чтобы дополнительно разрешить HTTPS-трафик, разрешите профиль Nginx Full или Apache Full\\ и удалите избыточный профиль HTTP:

  1. sudo ufw allow 'Nginx Full'
  2. sudo ufw delete allow 'Nginx HTTP'

Это должно привести к такому результату:

  1. sudo ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx Full ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx Full (v6) ALLOW Anywhere (v6)

На последнем этапе вы установите сертификат.

Шаг 5 – Установка сертификата на ваш сервер

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

В этом руководстве будет рассказано о настройке Nginx и Apache в Ubuntu 22.04, но большинство современных вариантов Linux будут работать аналогично. Этот учебник также делает следующие предположения:

  • Закрытый ключ, сертификат SSL и, если применимо, промежуточные сертификаты ЦС находятся в домашнем каталоге по адресу /home/sammy
  • Закрытый ключ называется example.com.key
  • Сертификат SSL называется example.com.crt
  • Промежуточные сертификаты ЦС, возвращенные вашим поставщиком, находятся в файле с именем intermediate.crt

Примечание. В производственной среде эти файлы должны храниться в таком месте, к которому может получить доступ только процесс веб-сервера (обычно root), а закрытый ключ должен храниться в безопасности. Например, Let’s Encrypt хранит сгенерированные им сертификаты в /etc/letsencrypt. Производственные примеры будут различаться из-за сложности конфигураций с несколькими серверами.

Nginx

Это шаги для ручного развертывания SSL-сертификата на Nginx.

Если ваш ЦС вернул только промежуточный сертификат, вы должны создать один «связанный» файл сертификата, который содержит ваш сертификат и промежуточные сертификаты ЦС.

Предполагая, что ваш файл сертификата называется example.com.crt, вы можете использовать команду cat для объединения файлов, чтобы создать комбинированный файл с именем example.com.chained. .crt:

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

Используя nano или ваш любимый текстовый редактор, откройте файл блока сервера Nginx по умолчанию для редактирования:

  1. sudo nano /etc/nginx/sites-enabled/default

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

…
server {
    listen 443 ssl;
…

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

…
    server_name example.com;
    ssl_certificate /home/sammy/example.com.chained.crt;
    ssl_certificate_key /home/sammy/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;
}
…

Сохраните и закройте файл. Если вы используете nano, нажмите Ctrl+X, затем, когда будет предложено, Y, а затем Enter.

Перед перезапуском Nginx вы можете проверить свою конфигурацию с помощью nginx -t:

  1. sudo nginx -t

Если проблем нет, перезапустите Nginx, чтобы включить SSL через HTTPS:

  1. sudo systemctl restart nginx

Проверьте это, зайдя на свой сайт через HTTPS, например. https://example.com. Вы также можете попробовать подключиться через HTTP, например. http://example.com, чтобы убедиться, что перенаправление работает правильно.

Апачи

Это шаги для ручного развертывания SSL-сертификата на Apache.

Используя nano или ваш любимый текстовый редактор, откройте файл виртуального хоста Apache по умолчанию для редактирования:

  1. sudo nano /etc/apache2/sites-available/000-default.conf

Найдите запись и измените ее, чтобы ваш веб-сервер прослушивал порт 443:

…
<VirtualHost *:443>
…

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

…
ServerName example.com

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

…
SSLEngine on
SSLCertificateFile /home/sammy/example.com.crt
SSLCertificateKeyFile /home/sammy/example.com.key
SSLCACertificateFile /home/sammy/intermediate.crt

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

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

Сохраните и закройте файл. Если вы используете nano, нажмите Ctrl+X, затем, когда будет предложено, Y, а затем Enter.

Включите модуль Apache SSL, выполнив эту команду:

  1. sudo a2enmod ssl

Теперь перезапустите Apache, чтобы загрузить новую конфигурацию и включить TLS/SSL через HTTPS.

  1. sudo systemctl restart apache2

Проверьте это, зайдя на свой сайт через HTTPS, например. https://example.com. Вы также можете попробовать подключиться через HTTP, например. http://example.com, чтобы убедиться, что перенаправление работает правильно.

Заключение

В этом руководстве вы узнали, как определить, когда вам может понадобиться приобрести сертификат SSL в коммерческом центре сертификации, и как сравнить и сопоставить доступные варианты. Вы также узнали, как настроить Nginx или Apache для поддержки HTTPS и как адаптировать их конфигурации для работы.

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