Перейти к основному содержимому
Версия: 7.0

Платные доверенные сертификаты на Linux

Как создать приватный ключ

Созданный приватный ключ может быть получен в интерфейсе поставщика SSL-сертификатов после отправки CSR или с помощью специализированного ПО, например, OpenSSL.

Ниже приведён фрагмент генерации приватного ключа в веб-интерфейсе поставщика SSL-сертификатов.

Генерация приватного ключа в веб-интерфейсе

Если создание приватного ключа было выполнено в веб-интерфейсе, то экспорт осуществляется по кнопке там же. После нажатия на кнопку браузер инициирует загрузку архива с файлом ключа в нужном формате.

Чтобы создать приватный ключ RSA с помощью OpenSSL, достаточно одной команды:

openssl genrsa -out rsaprivkey.pem 2048

Это команда генерирует закрытый ключ PEM и сохраняет его в файле rsaprivkey.pem. В нашем примере создается ключ размером 2048 бит, который подойдёт почти для всех ситуаций.

Для создания ключа DSA необходимо выполнить два шага:

openssl dsaparam -out dsaparam.pem 2048
openssl gendsa -out dsaprivkey.pem dsaparam.pem

На первом шаге создаётся файл параметров DSA (dsaparam.pem), который в данном случае содержит инструкции для OpenSSL по созданию на шаге 2 ключа размером 2048 бит. Файл dsaparam.pem не является ключом, поэтому его можно удалить после создания открытого и закрытого ключей. На втором шаге генерируется закрытый ключ (файл dsaprivkey.pem), который необходимо хранить в секрете.

Для создания файла в формате PKCS#12, используемом в ОС Windows, воспользуйтесь следующей командой:

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

Где:

  • pkcs12 – формат приватного ключа;
  • export – операция экспорта приватного ключа в требуемый формат;
  • out – каталог в файловой системе, куда должен быть размещён результирующий файл;
  • inkey – файл приватного ключа в формате PEM;
  • in – файл сертификата, полученный от Удостоверяющего центра;
  • certfile – копия корневого сертификата и промежуточных сертификатов в цепочке. На примере выше они отсутствуют.

Как сгенерировать CSR запрос

Чтобы сгенерировать CSR, в веб-форме поставщика услуги SSL-сертификата заполните предлагаемые поля. На рисунке выше указан пример заполнения. Набор минимально необходимых полей одинаковый и приведён в разделе про описание CSR, но некоторые поставщики могут добавлять свои либо изменять способ ввода.

Для генерации CSR средствами OpenSSL воспользуйтесь следующей командой:

openssl req -new -key private.key -out domain_name.csr -sha256

Где:

  • new – создание нового CSR-запроса посредством прямого ввода в консоли. Без данной опции будут использоваться данные конфигурационного файла OpenSSL;
  • key – наименование приватного ключа, требуемого для генерации. Если опция не указана, будет создан новый приватный ключ в соответствии с алгоритмом по умолчанию;
  • out – путь к создаваемому CSR-файлу;
  • sha256 – алгоритм шифрования.

В результате выполнения команды в консоли появится запрос на заполнение обязательных полей:

Пример заполнения CSR

Затем отправьте полученный CSR Удостоверяющему центру. В ответ он должен вернуть персональный сертификат.

Как настроить SSL для Apache

Для настройки SSL в Apache выполните следующие действия:

  1. Добавьте в каталог /etc/ssl/ персональный сертификат, выданный Удостоверяющим центром, приватный ключ и корневой сертификат вместе с остальными сертификатами цепочки

  2. Откройте файл конфигурации Apache любым текстовым редактором, например, vim. В зависимости от ОС сервера файл может находиться по одному из следующих расположений:

  • для CentOS: /etc/httpd/conf/httpd.conf;
  • для Debian/Ubuntu: /etc/apache2/apache2.conf;
  1. Если вы устанавливаете SSL-сертификат на OpenServer, используйте путь к его корневой папке. В конце файла создайте копию блока «VirtualHost». Укажите для блока порт 443 и добавьте внутри следующие строки:
SSLEngine on
SSLCertificateFile /etc/ssl/domain_name.crt
SSLCertificateKeyFile /etc/ssl/private.key
SSLCertificateChainFile /etc/ssl/chain.crt
Пример конфигурации Apache для SSL
  1. Проверьте конфигурацию Apache до перезапуска командой: apachectl configtest, после чего перезапустите Apache.

Как настроить SSL для Nginx

Для настройки SSL в Nginx выполните следующие действия:

  1. Откройте текстовый редактор и добавьте туда содержание персонального сертификата, выданного Удостоверяющим центром и корневого сертификата вместе с остальными сертификатами цепочки. Полученный файл должен иметь вид:
----BEGIN CERTIFICATE-----
#Ваш сертификат#
----END CERTIFICATE-----
----BEGIN CERTIFICATE-----
#Промежуточный сертификат#
----END CERTIFICATE-----
----BEGIN CERTIFICATE-----
#Корневой сертификат#
----END CERTIFICATE-----
  1. Сохраните полученный файл с расширением *.crt в каталог /etc/ssl/. Обратите внимание: один сертификат идёт следом за другим, без пустых строк.

  2. Сохраните файл your_domain.key с приватным ключом сертификата в каталог /etc/ssl.

  3. Откройте конфигурационный файл Nginx и отредактируйте виртуальный хост вашего сайта, который вы хотите защитить сертификатом. Выполните минимальную для работы настройку, добавив в файл следующие строки:

server {
listen 443 ssl;
server_name your_domain.com;
ssl_certificate /etc/ssl/your_domain.crt;
ssl_certificate_key /etc/ssl/your_domain.key;
}

Где:

  • your_domain.com — доменное имя сайта;
  • /etc/ssl/your_domain.crt — путь до созданного файла с тремя сертификатами;
  • /etc/ssl/your_domain.key — путь до файла с приватным ключом.

Название файлов и каталогов могут быть произвольными.

Дополнительно можно настроить работу сайта по HTTP, тип кэша сервера, таймаут обновления кэша, а также время работы одного keepalive-соединения. Также можно настроить поддерживаемые протоколы и их приоритет (серверный набор или клиентский) и OCSP-ответы для валидации сертификата. Детали приведены в руководстве пользователя Nginx.

  1. Чтобы изменения вступили в силу, перезапустите сервер Nginx:
sudo /etc/init.d/nginx restart