Installer un certificat pour postfix
1. Récupération des fichiers
Dans un premier temps, il faut récupérer les fichiers nécessaires à l'installation de votre certificat. Vous avez besoin de 2 fichiers :
- Votre clé privée : ce fichier a été généré en même temps que votre CSR lors de votre commande de certificat. Si un mot de passe a été mis en place sur cette clé, il faut le déchiffrer. Vous pouvez le faire directement grâce à notre outil en ligne : déchiffrement de clé privée par votre navigateur
- Votre certificat et la chaîne de certification : depuis la page statut de votre certificat, bouton "Voir le certificat", cliquez sur le lien "Voir le certificat avec chaîne". Cela vous permettra de télécharger votre certificat ainsi que la chaîne au format PEM
2. Installation du certificat
Pour installer votre certificat sous postfix, il faut éditer le fichier main.cf pour y rajouter ou modifier des paramètres.
La méthode d'installation diffère en fonction de la version de Postfix qui est installé.
Pour Postfix 3.4 et +
La documentation de Postfix conseille d'installer un seul fichier qui va contenir :
- la clé privée
- le certificat serveur
- la chaine de certification
Ouvrez le fichier avec l'extension .pem récupéré dans la première partie et insérez au tout début de ce fichier le contenu de votre clé privée.
Le contenu devra ressembler à celui-ci :
--------------BEGIN PRIVATE KEY---------------- ... ... //votre clé privée ... --------------END PRIVATE KEY---------------- --------------BEGIN CERTIFICATE---------------- ... ... //votre certificat serveur ... --------------END CERTIFICATE---------------- --------------BEGIN CERTIFICATE---------------- ... ... // le certificat intermediaire ... --------------END CERTIFICATE----------------
Il est important que le fichier contienne ces 3 éléments dans cet ordre exact, sinon cela ne fonctionnera pas.
Éditez ensuite le fichier main.cf
- Pour la partie réception des méls (serveur SMTP)
# directive pour indiquer le certificat smtpd_tls_chain_files = /chemin/vers/votre/fichier.pem #directive pour autoriser le protocole TLS et désactiver le SSL smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 # active le TLS smtpd_tls_security_level = may # recommandé pour avoir des détails dans les logs smtpd_tls_loglevel = 1 # recommandé pour rajouter une trace TLS dans les entêtes smtpd_tls_received_header = yes # directive concernant les ciphers smtpd_tls_exclude_ciphers = NULL, aNULL, RC4, 3DES, eNULL, DHE_EXPORT smtpd_tls_mandatory_ciphers = high
- Pour la partie envoi des méls (client SMTP):
#active le TLS si besoin smtp_tls_security_level = may #directive pour autoriser le protocole TLS et désactiver le SSL smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 # recommandé pour avoir des détails dans les logs smtp_tls_loglevel = 1 # directive concernant les ciphers smtp_tls_exclude_ciphers = NULL, aNULL, RC4, 3DES, eNULL, DHE_EXPORT smtp_tls_mandatory_ciphers = medium
Pour Postfix 3.3 et -
- Pour la partie réception des méls (serveur SMTP):
# directive pour indiquer le certificat et la chaîne de certification smtpd_tls_cert_file = /chemin/vers/votre/fichier.pem smtpd_tls_key_file = /chemin/vers/votre/cléprivée.key #directive pour autoriser le protocole TLS et désactiver le SSL smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 # active le TLS smtpd_tls_security_level = may # recommandé pour avoir des détails dans les logs smtpd_tls_loglevel = 1 # recommandé pour rajouter une trace TLS dans les entêtes smtpd_tls_received_header = yes # directive concernant les ciphers smtpd_tls_exclude_ciphers = NULL, aNULL, RC4, 3DES, eNULL, DHE_EXPORT smtpd_tls_mandatory_ciphers = high
- Pour la partie envoi des méls (client SMTP):
#active le TLS si besoin smtp_tls_security_level = may #directive pour autoriser le protocole TLS et désactiver le SSL smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 # recommandé pour avoir des détails dans les logs smtp_tls_loglevel = 1 # directive concernant les ciphers smtp_tls_exclude_ciphers = NULL, aNULL, RC4, 3DES, eNULL, DHE_EXPORT smtp_tls_mandatory_ciphers = medium
tlsmgr unix - - n 1000? 1 tlsmgrSi votre configuration est standard vous pouvez vous arrêter ici. Pour une configuration avancée, nous recommandons :
- De télécharger, avec OpenSSL, notre archive des autorités de confiance à installer dans /etc/postfix/tbs-trusted-roots/
- Rajouter les lignes suivantes pour comprendre les certificats des autres serveurs ou utilisateurs:
smtpd_tls_CAfile = /etc/postfix/tbs-trusted-roots/clientca.txt smtp_tls_CAfile = /etc/postfix/tbs-trusted-roots/allroots.txt
- Si vous voulez forcer le chiffrement entre 2 domaines (par exemple intra-entreprise ou avec des
partenaires, rajoutez:
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
Et créez le fichier /etc/postfix/tls_policy suivant le modèle:[127.0.0.1] none [127.0.0.1]:10024 none tbs-internet.com encrypt
Ici vous pouvez spécifiez quels domaines destinataires doivent être transportés chiffrés. N'oubliez pas la commande postmap tls_policy pour compiler le fichier pour postfix. Voir la documentation de smtp_tls_policy_maps