En este procedimiento, puede crear y firmar un certificado de clave pública. La clave privada y el certificado se almacenan en el almacén de claves softtoken PKCS #11 para IKEv2. Envía el certificado de clave pública a los pares de IKE, quienes a su vez le envían su certificado público.
Realiza este procedimiento en todos los sistemas IKE que usan certificados autofirmados.
Antes de empezar
Para utilizar los certificados, debe haber completado Cómo crear y utilizar un almacén de claves para certificados de clave pública IKEv2.
Debe convertirse en un administrador que tiene asignado el perfil de derechos de gestión de IPsec de red. Debe utilizar un shell de perfil. 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 .
Si realiza administraciones remotas, consulte el Example 7–1 y Cómo administrar ZFS con shell seguro de forma remota de Gestión de acceso mediante shell seguro en Oracle Solaris 11.2 para obtener instrucciones para un inicio de sesión remoto seguro.
Para obtener una descripción de los argumentos del comando ikev2cert gencert, revise el subcomando pktool gencert keystore=pkcs11 en la página del comando man pktool(1).
Para obtener el formato del argumento subject, consulte Uso de certificados de claves públicas en IKE.
# pfbash # ikev2cert gencert \ label="ITpartym" \ subject="O=exampleco, OU=IT, C=US, CN=partym" \ serial=0x87654321 keytype=rsa keylen=2048 Enter PIN for Sun Software PKCS#11 softtoken: xxxxxxxx
Los mensajes de error siguientes indican un PIN escrito incorrectamente o un almacén de claves no inicializado:
Error creating certificate and keypair: keystore error: CKR_PIN_INCORRECT libkmf error: KMF_ERR_AUTH_FAILED Error creating certificate and keypair: keystore error: CKR_PIN_EXPIRED: PIN expired and must be changed libkmf error: KMF_ERR_BAD_PARAMETER: invalid parameter
# ikev2cert gencert \ label=ITenigma \ subject="O=exampleco, OU=IT, C=US, CN=enigma" \ serial=0x86428642 keytype=rsa keylen=2048 Enter PIN for Sun Software PKCS#11 softtoken: xxxxxxxx
enigma # /usr/sbin/ikev2cert list objtype=both Enter PIN for Sun Software PKCS#11 softtoken: xxxxxxxx No. Key Type Key Len. Key Label ---------------------------------------------------- Asymmetric private keys: 1) RSA ITenigma Asymmetric public keys: 1) RSA ITenigma Certificates: 1) X.509 certificate Label: ITenigma Subject: C=US, O=exampleco, OU=IT, CN=enigma Issuer: C=US, O=exampleco, OU=IT, CN=enigma Not Before: April 10 21:49:00 2014 GMT Not After: April 10 21:49:00 2015 GMT Serial: 0x86426420 Signature Algorithm: sha1WithRSAEncryption X509v3 Subject Key Identifier: 34:7a:3b:36:c7:7d:4f:60:ed:ec:4a:96:33:67:f2:ac:87:ce:35:cc SHA1 Certificate Fingerprint: 68:07:48:65:a2:4a:bf:18:f5:5b:95:a5:01:42:c0:26:e3:3b:a5:30
La opción outformat=pem garantiza que el certificado público se colocará en el archivo con un formato adecuado para importación directa. La etiqueta identifica el certificado en el almacén de claves.
# cd /tmp # ikev2cert export objtype=cert outformat=pem outfile=filename label=label Enter PIN for Sun Software PKCS#11 softtoken:xxxxxxxx
Por ejemplo, si administra ambos sistemas, use el comando sftp para traer el certificado del otro sistema.
enigma # sftp jdoe@partym:/tmp/ITpartym.pem /tmp/ITpartym.pem.cert partym # sftp jdoe@enigma:/tmp/ITenigma.pem /tmp/ITenigma.pem.cert
Se le solicitará la contraseña. En este ejemplo, jdoe debe proporcionar una contraseña.
Desea garantizar que ha recibido el certificado adecuado antes de cargarlo en el almacén de claves.
Por ejemplo, el administrador de partym envía por correo electrónico el resumen del archivo que contiene el certificado de partym al otro administrador. El administrador de enigma envía por correo electrónico el resumen del archivo del certificado enigma.
partym # digest -a sha1 /tmp/ITpartym.pem c6dbef4136c0141ae62110246f288e5546a59d86 enigma # digest -a sha1 ITenigma.pem 6b288a6a6129d53a45057065bd02b35d7d299b3a
enigma # digest -a sha1 /tmp/ITpartym.pem.cert c6dbef4136c0141ae62110246f288e5546a59d86 partym # digest -a sha1 /tmp/ITenigma.pem.cert 6b288a6a6129d53a45057065bd02b35d7d299b3a
Los resúmenes deben coincidir. Si no coinciden, no importe el archivo al almacén de claves. Para conocer otra manera de verificar la validez del certificado, consulte el Example 9–3.
Cuando importe el certificado al almacén de claves, deberá asignarle una etiqueta que identifique de forma exclusiva el certificado en el sistema. La etiqueta enlaza la clave pública con su certificado de clave pública.
enigma# ikev2cert import label=ITpartym1 infile=/tmp/ITpartym.pem.cert
partym# ikev2cert import label=ITenigma1 infile=/tmp/ITenigma.pem.cert
Compare la lista con la lista del Step 2. Por ejemplo, en el almacén de claves enigma, se agrega el certificado partym.
enigma # /usr/sbin/ikev2cert list objtype=both Enter PIN for Sun Software PKCS#11 softtoken: xxxxxxxx No. Key Type Key Len. Key Label ---------------------------------------------------- Asymmetric private keys: 1) RSA ITenigma Asymmetric public keys: 1) RSA ITenigma Certificates: 1) X.509 certificate Label: ITenigma Subject: C=US, O=exampleco, OU=IT, CN=enigma Issuer: C=US, O=exampleco, OU=IT, CN=enigma Not Before: April 10 21:49:00 2014 GMT Not After: April 10 21:49:00 2015 GMT Serial: 0x86426420 Signature Algorithm: sha1WithRSAEncryption X509v3 Subject Key Identifier: 34:7a:3b:36:c7:7d:4f:60:ed:ec:4a:96:33:67:f2:ac:87:ce:35:cc SHA1 Certificate Fingerprint: 68:07:48:65:a2:4a:bf:18:f5:5b:95:a5:01:42:c0:26:e3:3b:a5:30 2) X.509 certificate Label: ITpartym1 Subject: C=US, O=exampleco, OU=IT, CN=partym Issuer: C=US, O=exampleco, OU=IT, CN=partym Not Before: April 10 21:40:00 2014 GMT Not After: April 10 21:40:00 2015 GMT Serial: 0x87654321 Signature Algorithm: sha1WithRSAEncryption X509v3 Subject Key Identifier: ae:d9:c8:a4:19:68:fe:2d:6c:c2:9a:b6:06:55:b5:b5:d9:d9:45:c6 SHA1 Certificate Fingerprint: 83:26:44:29:b4:1f:af:4a:69:0d:87:c2:dc:f4:a5:1b:4f:0d:36:3b
Utilice el comando pfedit para editar el archivo /etc/inet/ike/ikev2.config.
## ... Global transform that applies to any rule without a declared transform ikesa_xform { dh_group 21 auth_alg sha512 encr_alg aes } ## ... Any self-signed ## end-entity certificates must be present in the keystore or ## they will not be trusted. { label "partym-enigma" auth_method cert local_id DN = "O=exampleco, OU=IT, C=US, CN=partym" remote_id DN = "O=exampleco, OU=IT, C=US, CN=enigma" } ...
Para el parámetro remoto, use el DN del certificado partym como valor. Asegúrese de que el valor de la palabra clave label sea exclusivo en el sistema local.
… ikesa_xform { dh_group 21 auth_alg sha512 encr_alg aes } … { label "enigma-partym" auth_method cert local_id DN = "O=exampleco, OU=IT, C=US, CN=enigma" remote_id DN = "O=exampleco, OU=IT, C=US, CN=partym" } ...
# /usr/lib/inet/inikev2.d -c
Corrija los errores tipográficos o las imprecisiones antes de continuar.
# svcs ikev2 STATE STIME FMRI disabled Sep_07 svc:/network/ipsec/ike:ikev2
partym # svcadm enable ipsec/ike:ikev2 enigma # svcadm enable ipsec/ike:ikev2
En este ejemplo, el administrador especifica que el certificado es válido para dos años.
# ikev2cert gencert \ > label=DBAuditV \ > serial=0x12893467235412 \ > subject="O=exampleco, OU=DB, C=US, CN=AuditVault" \ > altname=EMAIL=auditV@example.com \ > keytype=ec curve=secp521r1 hash=sha512 \ > lifetime=2-yearEjemplo 9-3 Verificación de un certificado de clave pública por su huella
En este ejemplo, el administrador utiliza la huella del certificado para verificar el certificado. La desventaja de este método es que el administrador debe importar el certificado del par al almacén de claves antes de visualizar la huella.
El administrador importa el certificado, lo muestra con el comando ikev2cert list objtype=cert y, a continuación, copia la huella del certificado de la salida y la envía al otro administrador del sistema.
SHA1 Certificate Fingerprint: 83:26:44:29:b4:1f:af:4a:69:0d:87:c2:dc:f4:a5:1b:4f:0d:36:3b
Si la verificación falla, el administrador que importó el certificado deberá eliminar el certificado y su clave pública del almacén de claves.
# ikev2cert delete label=label-name Enter PIN for Sun Software PKCS#11 softtoken: xxxxxxxx 1 public key(s) found, do you want to delete them (y/N) ? y 1 certificate(s) found, do you want to delete them (y/N) ? y
Pasos siguientes
Si no terminó de establecer la política IPsec, regrese al procedimiento IPsec para activar o refrescar la política IPsec. Para ver ejemplos de la política de IPsec para protección de VPN, consulte Protección de una VPN con IPsec. Para ver otros ejemplos de la política de IPsec, consulte Cómo proteger el tráfico de red seguro entre dos servidores con IPsec.