Dans cette procédure, vous créez et signez un certificat de clé publique. La clé privée et le certificat sont stockés dans le keystore de jeton logiciel PKCS #11 pour IKEv2. Vous envoyez le certificat de clé publique aux homologues IKE, qui, à leur tour, vous envoient leur certificat public.
Vous effectuez cette procédure sur tous les systèmes utilisant IKE les certificats auto-signés .
Avant de commencer
Pour utiliser les certificats, vous devez avoir effectué la Création et utilisation d'un keystore pour les certificats de clés publiques IKEv2.
Vous devez vous connecter en tant qu'administrateur disposant du profil de droits Network IPsec Management (gestion IPsec du réseau). Vous devez utiliser un shell de profil. 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 .
Si vous administrez à distance, reportez-vous à l'Example 7–1 et à Administration à distance de ZFS avec le shell sécurisé du manuel Gestion de l’accès au shell sécurisé dans Oracle Solaris 11.2 pour des instructions sur la connexion à distance sécurisée.
Pour obtenir une description des arguments de la commande ikev2cert gencert, vérifiez la sous-commande pktool gencert keystore=pkcs11 de la page de manuel pktool(1).
Pour le format de l'argument subject, reportez-vous à Utilisation de certificats de clés publiques dans 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
Les messages d'erreur suivants indiquent un code PIN contenant une faute de frappe ou un keystore non initialisé :
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
L'option outformat=pem permet de vous assurer que le certificat public est placé dans le fichier dans un format convenant à l'importation directe. L'étiquette keystore identifie le certificat dans le.
# cd /tmp # ikev2cert export objtype=cert outformat=pem outfile=filename label=label Enter PIN for Sun Software PKCS#11 softtoken:xxxxxxxx
Par exemple administrez les deux systèmes, utilisez la commande sftp pour ramener le certificat de l'autre système.
enigma # sftp jdoe@partym:/tmp/ITpartym.pem /tmp/ITpartym.pem.cert partym # sftp jdoe@enigma:/tmp/ITenigma.pem /tmp/ITenigma.pem.cert
Vous êtes invité à saisir votre mot de passe. Dans cet exemple, jdoe doit fournir un mot de passe.
Avant de charger un certificat dans le keystore, assurez-vous que c'est le bon.
Par exemple, l'administrateur de partym envoie par e-mail à l'autre administrateur l'empreinte du fichier contenant le certificat de partym. L'administrateur de enigma envoie pour sa part l'empreinte du fichier de certificat de 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
Les condensés doivent correspondre. Si elles ne correspondent pas, ne pas importer le contenu du fichier dans le keystore. Pour une autre manière de vérifier la validité d'un certificat, voir l'Example 9–3.
Lorsque vous importez un certificat dans votre keystore, vous devez lui assigner une étiquette unique pour l'identifier sur votre système. La clé publique l'étiquette avec ses liens certificat de clé publique.
enigma# ikev2cert import label=ITpartym1 infile=/tmp/ITpartym.pem.cert
partym# ikev2cert import label=ITenigma1 infile=/tmp/ITenigma.pem.cert
Comparez la liste à celle de l'Step 2. Par exemple, le certificat de partym est ajouté dans le keystore de enigma.
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
Utilisez la commande pfedit pour modifier le fichier /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" } ...
Pour la valeur du paramètre distant, utilisez le ND du certificat de partym. Assurez-vous que la valeur du mot-clé label est unique sur le système 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
Des erreurs typographiques ou des inexactitudes corrigez les éventuelles avant de continuer.
# 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
Dans cet exemple, l'administrateur indique que le certificat est valide pendant deux ans.
# 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-yearExemple 9-3 Vérification d'un certificat de clé publique à l'aide de son empreinte
Dans cet exemple, l'administrateur utilise l'empreinte du certificat pour vérifier le certificat. L'inconvénient de cette méthode est qu'il appartient à l'administrateur d'importer le certificat dans le keystore du pair avant de visualiser l'empreinte.
L'administrateur importe le certificat, le liste à l'aide de la commande ikev2cert list objtype=cert, puis copie son empreinte numérique depuis la sortie et l'envoie à l'administrateur de l'autre système.
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 vérification échoue, l'administrateur qui a importé le certificat doit supprimer ce certificat et sa clé publique du keystore.
# 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
Etapes suivantes
Si vous n'avez pas terminé d'établir la stratégie IPsec, effectuez de nouveau la procédure IPsec pour activer ou actualiser la stratégie IPsec. Pour obtenir des exemples de la stratégie IPsec de protection de VPN, reportez-vous à Protection d'un VPN à l'aide d'IPsec. Pour plus d'exemples de la stratégie IPsec, reportez-vous à la section Sécurisation du trafic entre deux serveurs réseau à l'aide d'IPsec.