Создать самоподписанный SSL сертификат, который можно будет использовать для сайта или почты, в Linux можно с помощью утилиты openssl.
SSL сертификаты применяются для шифрования информации, передаваемой через сети общего доступа. Сертификаты используются для доменов почтовой системы, а также устанавливают на домены для получения доступа к сайту через интернет браузер по порту 443. Только посредством https соединения осуществляются любые денежные операции на сайтах систем онлайн торговли.
SSL сертификаты и ключи можно генерировать на любых Linux серверах, подписывать из должны сертификационные центры, также сертификаты можно подписывать самостоятельно.
Браузер при обращении к сайту, работающему с самоподписанным сертификатом 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
Процесс выпуска сертификата показан на скриншоте:
Результатом будут создавшиеся файлы 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