SSL cертификаты используются для шифрования информации, передаваемой через сети общего доступа. Сертификаты применяют при построении почтовой системы, а также (значительно чаще) устанавливают на домены для получения доступа к сайту через интернет браузер по порту 443. Только посредством https соединения осуществляются любые денежные операции на сайтах систем онлайн торговли.
SSL cертификаты и ключи можно генерировать на любых Linux серверах, подписывать из должны сертфикационные центры, также сертфикаты можно подписывать самостоятельно. Браузер при обращении к сайту, работающему с самоподписанным SSL сертификатом будет выдавать предупреждение о невозможности убедиться в защищенности соединения, однако часто такой вариант также находит применение. Рассмотрим как сгенерировать самоподписанный сертификат SSL.
Как сгенерировать самоподписанный сертификат SSL на Linux сервере
Для того чтобы сгенерировать самоподписанный сертификат потребуется установить на сервер пакет openssl (часто он установлен по умолчанию)
apt-get install openssl
Файлы приватного ключа и цепочки сертификатов генерируются одной командой
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 []:[email protected]com
Результатом будут создавшиеся файлы example.pem и example.key
Обычно этого достаточно и файлы уже можно использовать
Путь к ним теперь необходимо будет указывать при настройке различного ПО, использующего сертификаты: веб- (Apache, Nginx) и почтовых серверов (Postfix, Exim, Dovecot).
Генерация самоподписанного сертификата в несколько шагов
Далее описан тот же процесс, что и ранее, но не в одной команде, а по шагам.
Создаем ключ
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
Читайте также про то, как установить SSL сертификат на Apache и на Nginx