Postfix / Dovecot и новый закрытый ключ, защищенный паролем

Я создал пару CST и закрытого ключа, как сказал StartSSL, для моего постфикса / Сервер dovecot Ubuntu 14.04 с:

openssl req -newkey rsa:2048 -keyout mydomain.key -out mydomain.csr

В запросе парольной фразы я ввел (почему бы и нет, верно?) пароль, вместо того, чтобы оставить поле пароля пустым, чтобы получить незащищенный ключ.

После вставки csr в StartSSL, я получил соответствующий сертификат, связанный с файлом, защищенным паролем.

I ' Используйте этот сертификат как для Dovecot, так и для Postfix:

// /etc/postfix/main.cf
smtpd_tls_cert_file = /etc/ssl/private/mychain.pem
smtpd_tls_key_file = /etc/ssl/private/mydomain.key
smtpd_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

// /etc/dovecot/conf.d/10-ssl.conf
ssl_cert = </etc/ssl/private/mychain.pem
ssl_key = </etc/ssl/private/mydomain.key

При выполнении теста с checktls.com я получаю:

// other steps omited
749.-->STARTTLS\r\n
750.<--454 4.7.0 TLS not available due to local problem\r\n

И в моем системном журнале ошибка SMTP вместе с dovecot ошибка, которая, к счастью, произошла как раз в этот момент (думаю, некоторые из моих клиентов пытались подключиться в этот момент):

Oct 25 18:49:12 ns dovecot: pop3-login: Error: SSL private key file is password protected, but password isn't given
Oct 25 18:49:12 ns dovecot: pop3-login: Fatal: Couldn't parse private ssl_key: error:0907B068:PEM routines:PEM_READ_BIO_PRIVATEKEY:bad password read
Oct 25 18:49:12 ns dovecot: master: Error: service(pop3-login): command startup failed, throttling for 60 secs
Oct 25 18:49:16 ns postfix/smtpd[30437]: connect from www4.checktls.com[216.68.85.112]
Oct 25 18:49:17 ns postfix/smtpd[30437]: lost connection after UNKNOWN from www4.checktls.com[216.68.85.112]
Oct 25 18:49:17 ns postfix/cleanup[30461]: 93088330D956: message-id=<20161025164917.93088330D956@mydomain.com>
Oct 25 18:49:17 ns postfix/smtpd[30437]: disconnect from www4.checktls.com[216.68.85.112]

Итак, как я могу заставить Postfix и Dovecot узнать пароль, удалить пароль или у меня есть чтобы повторно обновить сертификат?

Я предпочитаю решение первого вопроса (сообщить им пароль), потому что это новая ситуация для меня, и поэтому я кое-что узнаю (возможно, мне нужно «зарегистрировать» пароль этого ключ к некоторому пулу паролей системы?)

1
задан 25 October 2016 в 20:36
2 ответа

Настройка Dovecot

Вы можете настроить Dovecot на разблокировку ключа с помощью парольной фразы при запуске. На странице конфигурации SSL есть раздел, посвященный :

файлам ключей SSL, которые могут быть защищены паролем. Есть два способа предоставить Dovecot с паролем:

  1. При запуске Dovecot с dovecot -p запрашивается пароль. Он нигде не хранится, поэтому этот метод предотвращает запуск Dovecot. автоматически при запуске.

  2. ssl_key_password настройка. Обратите внимание, что dovecot.conf по умолчанию доступен для чтения всем, поэтому вам, вероятно, не следует размещать его там напрямую. Вместо этого вы можете сохранить его в другом файле, например /etc/dovecot-private.conf содержащий:

    ssl_key_password = secret

    , а затем использовать ! Include_try /etc/dovecot-private.conf в основном dovecot.conf .

Postfix требует незашифрованного ключа

Postfix не может работать с зашифрованными ключами , поэтому вам необходимо предоставить расшифрованную копию:

Чтобы использовать TLS, SMTP-сервер Postfix обычно нужен сертификат и закрытый ключ. Оба должны быть в формате «PEM». Закрытый ключ не должен быть зашифрован, то есть ключ должен быть доступен без пароля. [...]

Удаление парольной фразы

Удаление парольной фразы также легко достигается запуском

openssl rsa -in encrypted-key.pem -out decrypted-key.pem

без ввода новой парольной фразы при повторном экспорте ключа.

2
ответ дан 3 December 2019 в 20:32

Вы также можете сразу создать незашифрованный ключ с помощью openssl. Чтобы получить ключ, файлы csr и crt, команды должны выглядеть так:

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server.key
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
0
ответ дан 3 December 2019 в 20:32

Теги

Похожие вопросы