J'ai créé une paire de clés CST et privée, comme indiqué par StartSSL, pour mon serveur postfix/Dovecot Ubuntu 14.04, avec :
openssl req -newkey rsa:2048 -keyout mydomain.key -out mydomain.csr
A l'invite de la phrase de passe, j'ai introduit (pourquoi pas, n'est-ce pas ?) un mot de passe, au lieu de laisser le mot de passe vide pour avoir une clé non protégée.
Après avoir collé le csr
à StartSSL, j'ai reçu le certificat correspondant associé au fichier protégé par mot de passe.
J'ai à la fois Dovecot et Postfix qui utilisent ce certificat :
// /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
Lorsque vous effectuez un test avec checktls.com
Je reçois :
// other steps omited
749.-->STARTTLS\r\n
750.<--454 4.7.0 TLS not available due to local problem\r\n
Et dans le journal de mon système, l'erreur SMTP, ainsi qu'une dovecot
erreur qui, heureusement, s'est produite juste à ce moment-là (une partie de mon client essayait de connecter ce moment-là, je suppose) :
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]
Donc, comment puis-je faire en sorte que Postfix et Dovecot connaissent le mot de passe, supprimer le mot de passe, ou dois-je renouveler le certificat ?
Je préfère une solution à la première question (leur faire connaître le mot de passe), parce que c'est une nouvelle situation pour moi et que j'apprends quelque chose (peut-être dois-je "enregistrer" le mot de passe de cette clé dans un pool de mots de passe du système ?)