Создание SSL-сертификата
Возникла однажды необходимость обновить сертификат на почтовом сервере, где используется dovecot. После непродолжительного курения man-ов родилось следующее решение:
- openssl req -new -x509 -days 365 -sha256 -newkey rsa:1024 \
- -nodes -keyform PEM -keyout dovecot-key.pem -outform PEM \
- -out dovecot.pem -subj '/O=Some Org/CN=mail.someorg.net'
O – название организации, CN – название сервера. Должно совпадать с именем хоста. Такой сертификат будет действителен 1 год с момента создания (параметр -days). Файл dovecot.pem нужно положить в директорию /etc/pki/dovecot/certs, а файл dovecot-key.pem – в директорию /etc/pki/dovecot/private, предварительно переименовав его в dovecot.pem или изменив параметр ssl_key_file в конфигурационном файле /etc/dovecot.conf , чтобы привести его в соответствие реальному имени файла с ключём.
Для того, чтобы экспортировать данный сертификат в формат PKCS#12, который используется многими приложениями от Microsoft, используется следующая команда:
- openssl pkcs12 -export -out dovecot.pfx -in dovecot.pem \
- -name "mycert" -inkey ../private/dovecot.pem
В данном случае она запускалась из директории /etc/pki/dovecot/certs.
Затем полученный сертификат в файле dovecot.pfx можно импортировать в храниилище доверенных сертификатов того приложения, которое работает с нашим почтовым сервером. Например, в Outlook Express 6 это делается так:
меню «Сервис» → «Параметры…» → вкладка «Безопасность» → кнопка «Сертификаты…» → вкладка «Доверенные корневые центры сертификации» → кнопка «Импорт…», выбрать найл dovecot.pfx, в окне запроса пароля поля оставить пустыми, далее везде согласиться со значениями по-умолчанию.
Данная процедура избавляет от появления предупреждающего сообщения с текстом «Используемый сервер имеет сертификат безопасности, который невозможно проверить» при каждом новом сеансе связи с почтовым сервером:
Обратная операция (преобразование pfx в pem):
- openssl pkcs12 -in dovecot.pfx -out dovecot.pem -nodes
или
- openssl pkcs12 -in dovecot.pfx -out dovecot.pem
Во втором случае случае будет запрошен пароль для приватного ключа.
Для проверки конфигурации можно заставить openssl выступить в роли почтового клиента следующим образом:
- openssl s_client -connect mail.someorg.net:995
и потом использовать команды протокола POP3 для дальнейшего диалога с сервером.
http://avz.org.ua/wp/2009/05/17/ssl-cert/