Платные доверенные сертификаты на 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 Удостоверяющему центру. В ответ он должен вернуть персональный сертификат.
Как настроить SSL для Apache
Для настройки SSL в Apache выполните следующие действия:
-
Добавьте в каталог /etc/ssl/ персональный сертификат, выданный Удостоверяющим центром, приватный ключ и корневой сертификат вместе с остальными сертификатами цепочки
-
Откройте файл конфигурации Apache любым текстовым редактором, например, vim. В зависимости от ОС сервера файл может находиться по одному из следующих расположений:
- для CentOS: /etc/httpd/conf/httpd.conf;
- для Debian/Ubuntu: /etc/apache2/apache2.conf;
- Если вы устанавливаете SSL-сертификат на OpenServer, используйте путь к его корневой папке. В конце файла создайте копию блока «VirtualHost». Укажите для блока порт 443 и добавьте внутри следующие строки:
SSLEngine on
SSLCertificateFile /etc/ssl/domain_name.crt
SSLCertificateKeyFile /etc/ssl/private.key
SSLCertificateChainFile /etc/ssl/chain.crt

- Проверьте конфигурацию Apache до перезапуска командой: apachectl configtest, после чего перезапустите Apache.
Как настроить SSL для Nginx
Для настройки SSL в Nginx выполните следующие действия:
- Откройте текстовый редактор и добавьте туда содержание персонального сертификата, выданного Удостоверяющим центром и корневого сертификата вместе с остальными сертификатами цепочки. Полученный файл должен иметь вид:
----BEGIN CERTIFICATE-----
#Ваш сертификат#
----END CERTIFICATE-----
----BEGIN CERTIFICATE-----
#Промежуточный сертификат#
----END CERTIFICATE-----
----BEGIN CERTIFICATE-----
#Корневой сертификат#
----END CERTIFICATE-----
-
Сохраните полученный файл с расширением *.crt в каталог /etc/ssl/. Обратите внимание: один сертификат идёт следом за другим, без пустых строк.
-
Сохраните файл your_domain.key с приватным ключом сертификата в каталог /etc/ssl.
-
Откройте конфигурационный файл 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.
- Чтобы изменения вступили в силу, перезапустите сервер Nginx:
sudo /etc/init.d/nginx restart