$ openssl genrsa -out /etc/ssl/private/ca.key 4096
$ openssl req -new -nodes -x509 -days 365 -key /etc/ssl/private/ca.key -out /usr/local/share/ca-certificates/ca.crt -subj "blablabla (un truc valide)"
$ openssl rand 10 -hex > /etc/ssl/private/ca.serial
Ensuite j'ajoute ce certificat en tant que racine de confiance, avec update-ca-certificates qui me répond ce que j'attends :$ update-ca-certificates
Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....done.
Je constate qu'il m'a correctement créé deux liens symboliques /etc/ssl/certs/ca.pem et /etc/ssl/certs/fa3010bf.0 vers mon fichier. Les permissions sont correctes (lecture pour tout le monde) et le deuxième lien correspond bien au hash de mon fichier :$ openssl x509 -noout -hash -in /etc/ssl/certs/ca.pem
fa3010bf
Ensuite je signe un certificat à l'aide de mon ca.crt tout neuf :$ openssl req -new -nodes -newkey rsa:4096 -subj "blabla (un autre truc valide)" -keyout cert.key -out cert.csr
$ openssl x509 -req -days 365 -in cert.csr -CA /etc/ssl/certs/ca.pem -CAkey /etc/ssl/private/ca.key -CAserial /etc/ssl/private/ca.serial -out cert.crt
J'utilise ce certificat dans la configuration SSL de mon serveur SMTP, puis j'essaie ensuite de m'y connecter en TLS (STARTTLS même), mais j'ai quand même une erreur de certificat auto-signé :$ openssl s_client -showcerts -starttls smtp -crlf -connect localhost:587
[...]
Verify return code: 19 (self signed certificate in certificate chain)
Pourtant si je demande manuellement à OpenSSL d'utiliser mon certificat, je n'ai pas le problème :$ openssl s_client -showcerts -starttls smtp -crlf -connect localhost:587 -CAfile /etc/ssl/certs/ca.pem
[...]
Verify return code: 0 (ok)
J'ai essayé de faire manuellement les étapes update-ca-certificates en créant moi-même les liens symboliques, ça ne fait aucune différence. Tous les tutos que j'ai trouvé mentionnent les étapes que j'ai suivies mais pas une de plus.Est-ce que vous voyez ce qu'il me manque ?