Postfix / Dovecot e nova chave privada protegida por senha

1

Eu criei um par de chaves privadas e CST, como dito pelo StartSSL, para o meu servidor Ubuntu 14.04 postfix / dovecot, com:

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

No prompt da senha, introduzi (por que não, certo?) uma senha, em vez de deixar a senha em branco para ter uma chave não protegida.

Depois de colar o arquivo csr no StartSSL, recebi o certificado correspondente associado ao arquivo protegido por senha.

Eu tenho o Dovecot e o Postfix usando esse certificado:

// /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

Ao fazer o teste com checktls.com , recebo:

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

E no log do meu sistema, o erro SMTP, junto com um erro dovecot que, por sorte, acontece exatamente naquele momento (alguns dos meus clientes estavam tentando conectar naquele momento, eu acho):

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=<[email protected]>
Oct 25 18:49:17 ns postfix/smtpd[30437]: disconnect from www4.checktls.com[216.68.85.112]

Então, como posso fazer o Postfix e o Dovecot saberem a senha, remover a senha ou preciso renovar o certificado?

Eu prefiro uma solução para a primeira pergunta (fazendo com que eles saibam a senha), porque é uma situação nova para mim e então eu aprendo algo (talvez eu precise "registrar" a senha dessa chave em algum pool de senhas o sistema?)

    
por Peregring-lk 25.10.2016 / 19:03

1 resposta

2

Configurando o Dovecot

Você pode configurar o Dovecot para desbloquear a chave com a senha na inicialização. A página Wiki de configuração SSL tem uma seção sobre :

SSL key files may be password protected. There are two ways to provide Dovecot with the password:

  1. Starting Dovecot with dovecot -p asks the password. It's not stored anywhere, so this method prevents Dovecot from starting automatically at startup.

  2. ssl_key_password setting. Note that dovecot.conf is by default world-readable, so you probably shouldn't place it there directly. Instead you could store it in a different file, such as /etc/dovecot-private.conf containing:

    ssl_key_password = secret

    and then use !include_try /etc/dovecot-private.conf in the main dovecot.conf.

Postfix requer uma chave não criptografada

O postfix não pode lidar com chaves criptografadas , portanto, é necessário fornecer uma cópia descriptografada:

In order to use TLS, the Postfix SMTP server generally needs a certificate and a private key. Both must be in "PEM" format. The private key must not be encrypted, meaning: the key must be accessible without a password. [...]

Removendo a frase secreta

A remoção da frase secreta também é facilmente obtida executando

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

sem inserir uma nova senha quando a chave é exportada novamente.

    
por 25.10.2016 / 19:27