Создать самоподписанный SSL сертификат, который можно будет использовать для сайта или почты, в Linux можно с помощью утилиты openssl.
SSL сертификаты применяются для шифрования информации, передаваемой через сети общего доступа. Сертификаты используются для доменов почтовой системы, а также устанавливают на домены для получения доступа к сайту через интернет браузер по порту 443. Только посредством https соединения осуществляются любые денежные операции на сайтах систем онлайн торговли.
SSL сертификаты и ключи можно генерировать на любых Linux серверах, подписывать из должны сертификационные центры, также сертификаты можно подписывать самостоятельно.
Браузер при обращении к сайту, работающему с самоподписанным сертификатом SSL будет выдавать предупреждение о невозможности убедиться в защищенности соединения, однако часто такой вариант также находит применение. Рассмотрим как создать самоподписанный SSL сертификат.
![Как сгенерировать самоподписанный сертификат SSL](https://server-gu.ru/wp-content/uploads/2017/02/search-13476_640-300x240.png)
Для того чтобы сгенерировать самоподписанный сертификат потребуется установить на сервер пакет 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](https://server-gu.ru/wp-content/uploads/2023/04/opensslcer.png)
Результатом будут создавшиеся файлы 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