SMTP puede utilizar la Seguridad de la capa de transporte (TLS) en la versión 8.13 de sendmail. Este servicio ofrece a los servidores y clientes SMTP comunicaciones autenticadas y privadas a través de Internet, además de protección frente a ataques o escuchas no deseadas. Tenga en cuenta que este servicio no está activado de manera predeterminada.
El siguiente procedimiento utiliza datos de ejemplo para mostrar cómo configurar los certificados que permiten que sendmail utilice TLS. Para obtener más información, consulte Compatibilidad para ejecutar SMTP con TLS en la versión 8.13 de sendmail.
Para obtener más información, consulte Uso de sus derechos administrativos asignados de Protección de los usuarios y los procesos en 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 .
Tenga en cuenta que la siguiente línea de comandos genera texto interactivo.
# 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
Este comando crea y procesa solicitudes de certificado.
Esta opción req genera una nueva solicitud de certificado.
Esta opción req crea un certificado autofirmado.
Esta opción req permite asignar private/cakey.pem como nombre de archivo para la clave privada recién creada.
Esta opción req permite asignar cacert.pem como archivo de salida.
Esta opción req permite realizar un certificado por 365 días. El valor predeterminado es 30.
Esta opción req permite especificar openssl.cnf como archivo de configuración.
Tenga en cuenta que este comando requiere que proporcione lo siguiente:
Country Name, como US.
State or Province Name, como California.
Locality Name, como Menlo Park.
Organization Name, como Oracle .
Organizational Unit Name, como Solaris.
Common Name, que representa el nombre de host completo del equipo. Para obtener más información, consulte la página del comando man check-hostname(1M).
Email Address, como 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
Este comando requiere que proporcione la misma información que indicó en el paso 3c.
Tenga en cuenta que, en este ejemplo, el certificado y la clave privada están en el archivo 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
En este ejemplo, el archivo newreq.pem contiene la clave privada y el certificado sin firmar. El archivo newcert.pem contiene el certificado firmado.
Muestra información de certificados, convierte certificados a diversos formatos y firma solicitudes de certificado.
Se utiliza para firmar solicitudes de certificado en una variedad de formatos y para generar CRL (listas de revocación de certificados).
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
Para obtener más información, consulte Opciones de archivo de configuración para ejecutar SMTP con TLS.
Para obtener instrucciones detalladas, consulte Modificación de la configuración de 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
Reemplace host.domain con el nombre completo del otro host.
# C=host.domain.cert.pem # ln -s $C `openssl x509 -noout -hash < $C`.0
Reemplace host.domain con el nombre completo del otro host.
# svcadm enable network/smtp:sendmail
El siguiente es un ejemplo de un encabezado Received: para correo seguro con 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)
Tenga en cuenta que el valor de verify es OK, lo que significa que la autenticación se realizó correctamente. Para obtener más información, consulte Macros para ejecutar SMTP con TLS.
Véase también
Las siguientes páginas del comando man de OpenSSL: