SMTP peut utiliser le protocole TLS (Transport Layer Security) dans la version 8.13 de sendmail. Ce service aux serveurs et clients SMTP fournit des communications privées et authentifiées sur Internet, ainsi qu'une protection contre les écoutes clandestines et les pirates. Notez que ce service n'est pas activé par défaut.
La procédure suivante utilise des données d'exemple pour vous montrer comment configurer les certificats qui permettent à sendmail d'utiliser TLS. Pour plus d'informations, reportez-vous à la section Prise en charge de l'exécution de SMTP avec TLS dans la version 8.13 de sendmail.
Pour plus d'informations, reportez-vous à la section A l’aide de vos droits administratifs attribués du manuel Sécurisation des utilisateurs et des processus dans Oracle Solaris 11.2 .
# svcadm disable -t network/smtp:sendmail
# cd /etc/mail # mkdir -p certs/CA # cd certs/CA # mkdir certs crl newcerts private # echo "01" > serial # cp /dev/null index.txt # cp /etc/openssl/openssl.cnf .
Notez que la ligne de commande suivante génère du texte interactif.
# openssl req -new -x509 -keyout private/cakey.pem -out cacert.pem -days 365 \ -config openssl.cnf Generating a 1024 bit RSA private key .....................................++++++ .....................................++++++ writing new private key to 'private/cakey.pem' Enter PEM pass phrase: Verifying - Enter PEM pass phrase: ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) []:US State or Province Name (full name) []:California Locality Name (eg, city) []:Menlo Park Organization Name (eg, company) [Unconfigured OpenSSL Installation]:Oracle Organizational Unit Name (eg, section) []:Solaris Common Name (eg, YOUR name) []:somehost.somedomain.example.com Email Address []:someuser@example.com
Cette commande crée et traite des demandes de certificats.
Cette option de req génère une nouvelle demande de certificat.
Cette option de req crée un certificat autosigné.
Cette option de req vous permet d'assigner private/fichier.pem en tant que nom de fichier pour la clé privée que vous venez de créer.
Cette option de req vous permet d'assigner cacert.pem en tant que fichier de sortie.
Cette option de req vous permet d'obtenir le certificat pour 365 jours. La valeur par défaut est 30.
Cette option de req vous permet de spécifier openssl.cnf en tant que fichier de configuration.
Notez que cette commande requiert que vous fournissiez les informations suivantes :
Country Name (nom du pays), comme US.
State or Province Name (nom de l'Etat ou de la province), par exemple California.
Locality Name (nom de la localité), comme Menlo Park.
Organization Name (nom de l'organisation), par exemple Oracle.
Organizational Unit Name (nom du service dans l'organisation), comme Solaris .
Common Name (nom commun), qui correspond au nom d'hôte complet de la machine. Pour plus d'informations, reportez-vous à la page de manuel check-hostname(1M).
Email Address (adresse e-mail), par exemple someuser@example.com.
# cd /etc/mail/certs/CA # openssl req -nodes -new -x509 -keyout newreq.pem -out newreq.pem -days 365 \ -config openssl.cnf Generating a 1024 bit RSA private key ..............++++++ ..............++++++ writing new private key to 'newreq.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) []:US State or Province Name (full name) []:California Locality Name (eg, city) []:Menlo Park Organization Name (eg, company) [Unconfigured OpenSSL Installation]:Oracle Organizational Unit Name (eg, section) []:Solaris Common Name (eg, YOUR name) []:somehost.somedomain.example.com Email Address []:someuser@example.com
Cette commande requiert que vous fournissiez les mêmes informations que vous avez fournies à l'étape 3c.
Notez que dans cet exemple, le certificat et la clé privée se trouvent dans le fichier newreq.pem.
# cd /etc/mail/certs/CA # openssl x509 -x509toreq -in newreq.pem -signkey newreq.pem -out tmp.pem Getting request Private Key Generating certificate request # openssl ca -config openssl.cnf -policy policy_anything -out newcert.pem -infiles tmp.pem Using configuration from openssl.cnf Enter pass phrase for /etc/mail/certs/CA/private/cakey.pem: Check that the request matches the signature Signature ok Certificate Details: Serial Number: 1 (0x1) Validity Not Before: Jun 23 18:44:38 2005 GMT Not After : Jun 23 18:44:38 2006 GMT Subject: countryName = US stateOrProvinceName = California localityName = Menlo Park organizationName = Oracle organizationalUnitName = Solaris commonName = somehost.somedomain.example.com emailAddress = someuser@example.com X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 93:D4:1F:C3:36:50:C5:97:D7:5E:01:E4:E3:4B:5D:0B:1F:96:9C:E2 X509v3 Authority Key Identifier: keyid:99:47:F7:17:CF:52:2A:74:A2:C0:13:38:20:6B:F1:B3:89:84:CC:68 DirName:/C=US/ST=California/L=Menlo Park/O=Oracle/OU=Solaris/\ CN=someuser@example.com/emailAddress=someuser@example.com serial:00 Certificate is to be certified until Jun 23 18:44:38 2006 GMT (365 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated # rm -f tmp.pem
Dans cet exemple, le fichier newreq.pem contient le certificat et la clé privée non signés. Le fichier newcert.pem contient le certificat signé.
Affiche les informations sur les certificats, convertit les certificats sous différentes formes et signe les demandes de certificats.
Utilisée pour signer les demandes de certificats sous différentes formes et générer des listes de révocation de certificats (LRC).
define(`confCACERT_PATH', `/etc/mail/certs')dnl define(`confCACERT', `/etc/mail/certs/CAcert.pem')dnl define(`confSERVER_CERT', `/etc/mail/certs/MYcert.pem')dnl define(`confSERVER_KEY', `/etc/mail/certs/MYkey.pem')dnl define(`confCLIENT_CERT', `/etc/mail/certs/MYcert.pem')dnl define(`confCLIENT_KEY', `/etc/mail/certs/MYkey.pem')dnl
Pour plus d'informations, reportez-vous à la section Options du fichier de configuration pour l'exécution de SMTP avec TLS.
Pour obtenir des instructions détaillées, reportez-vous à la section Modification de la configuration sendmail.
# cd /etc/mail/certs # ln -s CA/cacert.pem CAcert.pem # ln -s CA/newcert.pem MYcert.pem # ln -s CA/newreq.pem MYkey.pem
# chmod go-r MYkey.pem
# C=CAcert.pem # ln -s $C `openssl x509 -noout -hash < $C`.0
Remplacez host.domain par le nom d'hôte complet de l'autre hôte.
# C=host.domain.cert.pem # ln -s $C `openssl x509 -noout -hash < $C`.0
Remplacez host.domain par le nom d'hôte complet de l'autre hôte.
# svcadm enable network/smtp:sendmail
Ce qui suit est un exemple de l'en-tête Received: pour le courrier sécurisé avec TLS.
Received: from his.example.com ([IPv6:2001:db8:3c4d:15::1a2f:1a2b]) by her.example.com (8.13.4+Sun/8.13.4) with ESMTP id j2TNUB8i242496 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for <janepc@her.example.com>; Tue, 29 Mar 2005 15:30:11 -0800 (PST) Received: from her.example.com (her.city.example.com [192.168.0.0]) by his.example.com (8.13.4+Sun/8.13.4) with ESMTP id j2TNU7cl571102 version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for <janepc@her.example.com>; Tue, 29 Mar 2005 15:30:07 -0800 (PST)
Notez que la valeur de verify est OK, ce qui signifie que l'authentification a réussi. Pour plus d'informations, reportez-vous à la section Macros pour l'exécution de SMTP avec TLS.
Voir aussi
Les pages de manuel OpenSSL suivantes :