Как создать самоподписанный SSL сертификат


Создать самоподписанный SSL сертификат, который можно будет использовать для сайта или почты, в Linux можно с помощью утилиты openssl.

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

SSL сертификаты и ключи можно генерировать на любых Linux серверах, подписывать из должны сертификационные центры, также сертификаты можно подписывать самостоятельно.


Браузер при обращении к сайту, работающему с самоподписанным сертификатом SSL будет выдавать предупреждение о невозможности убедиться в защищенности соединения, однако часто такой вариант также находит применение. Рассмотрим как создать самоподписанный SSL сертификат.

Как сгенерировать самоподписанный сертификат SSL

Для того чтобы сгенерировать самоподписанный сертификат потребуется установить на сервер пакет openssl (часто он установлен по умолчанию)


apt-get install openssl


Команды приведены для Ubuntu сервера.



Создание самоподписанного сертификата ssl с ключом одной командой


Файлы приватного ключа и цепочки сертификатов генерируются одной командой

openssl req -new -x509 -days 365 -sha256 -newkey rsa:2048 -nodes -out example.pem -keyout example.key



После ее выполнения возникает вопросов в диалоге, в ответах на которые нужно указать данные организации и домен для которого выпускается сертификат


Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:some state
Locality Name (eg, city) []:mycity
Organization Name (eg, company) [Internet Widgits Pty Ltd]:company
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:example.com
Email Address []:mail@example.com



Процесс выпуска сертификата показан на скриншоте:

самоподписанный сертификат ssl


Результатом будут создавшиеся файлы example.pem и example.key. Их можно использовать

Путь к файлам необходимо будет указать при настройке различного ПО, использующего сертификаты: веб- (Apache, Nginx) и почтовых серверов (Postfix, Exim, Dovecot).



Генерация самоподписанного сертификата ssl в несколько шагов


 Далее описан тот же процесс, что и ранее, но не в одной команде, а по шагам.


Создаем ключ

openssl genrsa -des3 -out example.key 1024


Создаем запрос на сертификат на основе ключа

openssl req -new -key example.key -out cert.csr


Появится файл example.src



Парольная фраза при использовании приватного ключа

Каждый раз когда мы производим какие-либо операции с приватным ключом система запрашивает парольную фразу. Чтобы не вводить ее каждый раз производим следующие действия.


Генерируем ключ .nopass и заменяем использовавшийся ранее ключ.

openssl rsa -in example.key -out example.key.nopass


mv example.key.nopass example.key


После этого парольная фраза уже не понадобится



Генерируем сертификат

openssl x509 -req -days 365 -in example.csr -signkey example.key -out example.crt


Проверить сертификат можно также с помощью утилиты openssl или с помощью специальных сервисов (например, этого) после того как сертификат установлен на сервере.


Читайте также про то, как установить SSL сертификат на Apache и на Nginx

Сказать спасибо