Gestion des certificats de serveur dans IAM - AWS Identity and Access Management

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gestion des certificats de serveur dans IAM

Pour autoriser des connexions HTTPS vers votre site web ou votre application dans AWS, vous avez besoin d'un certificat de serveur SSL/TLS. Pour les certificats dans une région prise en charge par AWS Certificate Manager (ACM), nous vous recommandons d'utiliser ACM pour allouer, gérer et déployer vos certificats de serveur. Dans les régions non prises en charge, vous devez utiliser IAM en tant que gestionnaire de certificats. Pour savoir quelles régions sont prises en charge par ACM, consultez Points de terminaison et quotas AWS Certificate Manager (français non garanti) dans Références générales AWS.

ACM est l'outil préféré pour mettre en service, gérer et déployer vos certificats de serveur. Avec ACM, vous pouvez demander un certificat ou déployer un certificat ACM existant ou un certificat externe vers des ressources AWS. Les certificats fournis par ACM sont gratuits et renouvelés automatiquement. Dans une région prise en charge, vous pouvez utiliser ACM pour gérer des certificats de serveur depuis la console ou par programmation. Pour plus d'informations sur l'utilisation d'ACM, consultez le Guide de l'utilisateur AWS Certificate Manager. Pour plus d'informations sur la demande d'un certificat ACM, consultez Demander un certificat public ou Demander in certificat privé dans le Guide de l'utilisateur AWS Certificate Manager. Pour plus d'informations sur l'importation de certificats tiers dans ACM, consultez Importation de certificats dans le Guide de l’utilisateur AWS Certificate Manager.

Utilisez IAM comme gestionnaire de certificats uniquement lorsque vous devez prendre en charge des connexions HTTPS dans une région non prise en charge par ACM. IAM chiffre en toute sécurité vos clés privées et stocke la version chiffrée dans le magasin de certificats SSL IAM. IAM prend en charge le déploiement de certificats de serveur dans toutes les régions, mais vous devez obtenir votre certificat auprès d'un fournisseur externe pour l'utiliser avec AWS. Vous ne pouvez pas télécharger de certificat ACM dans IAM. De plus, vous ne pouvez pas gérer vos certificats depuis la console IAM.

Pour plus d'informations sur le chargement de certificats tiers dans IAM, consultez les rubriques suivantes.

Chargement d'un certificat de serveur (API AWS)

Pour télécharger un certificat de serveur dans IAM, vous devez fournir le certificat et sa clé privée correspondante. Si le certificat n'est pas auto-signé, vous devez également fournir une chaîne de certificats. (Vous n'avez pas besoin d'une chaîne de certificats lorsque vous chargez un certificat auto-signé.) Avant de charger un certificat, vérifiez que vous avez tous ces éléments et qu'ils répondent aux critères suivants :

  • Le certificat doit être valide au moment du chargement. Vous ne pouvez pas charger un certificat avant le début de sa période de validité (date NotBefore du certificat) ou après son expiration (date NotAfter du certificat).

  • La clé privée doit être non chiffrée. Vous ne pouvez pas charger une clé privée qui est protégée par un mot de passe ou une phrase passe. Pour obtenir de l'aide pour déchiffrer une clé privée chiffrée, consultez Résolution des problèmes.

  • Le certificat, la clé privée et la chaîne de certificats doivent être codés PEM. Pour obtenir de l'aide pour convertir ces éléments au format PEM, consultez Résolution des problèmes.

Pour utiliser l'API IAM pour télécharger un certificat, envoyez une demande UploadServerCertificate. L'exemple suivant montre comment procéder avec l'AWS Command Line Interface (AWS CLI). Dans cet exemple il est supposé que :

  • Le certificat codé en PEM est stocké dans un fichier nommé Certificate.pem.

  • La chaîne de certificats codée en PEM est stockée dans un fichier nommé CertificateChain.pem.

  • La clé privée non chiffrée, codée en PEM est stockée dans un fichier nommé PrivateKey.pem.

  • (Facultatif) Vous souhaitez baliser le certificat de serveur avec une paire clé-valeur. Par exemple, vous pouvez ajouter la clé de balise Department et la valeur de balise Engineering pour vous aider à identifier et organiser vos certificats.

Pour utiliser l'exemple de commande suivant, remplacez ces noms de fichier par les vôtres. Remplacez ExampleCertificate par le nom du certificat que vous avez téléchargé. Si vous souhaitez baliser le certificat, remplacez la paire clé-valeur de balise ExampleKey et ExampleValue par vos propres valeurs. Tapez la commande sur une seule ligne continue. L'exemple suivant inclut des sauts de ligne et des espaces supplémentaires pour en faciliter la lecture.

aws iam upload-server-certificate --server-certificate-name ExampleCertificate --certificate-body file://Certificate.pem --certificate-chain file://CertificateChain.pem --private-key file://PrivateKey.pem --tags '{"Key": "ExampleKey", "Value": "ExampleValue"}'

Lorsque la commande précédente aboutit, elle renvoie des métadonnées relatives au certificat chargé, y compris son Amazon Resource Name (ARN), son nom convivial, son identifiant (ID), sa date d'expiration, ses balises, etc.

Note

Si vous chargez un certificat de serveur pour l'utiliser avec Amazon CloudFront, vous devez spécifier un chemin à l'aide de l'option --path. Le chemin doit commencer par /cloudfront et doit inclure une barre oblique de fin (par exemple, /cloudfront/test/).

Pour utiliser les AWS Tools for Windows PowerShell pour charger un certificat, utilisez Publish-IAMServerCertificate.

Récupération d'un certificat de serveur (API AWS)

Pour utiliser l'API IAM pour récupérer un certificat, envoyez une demande GetServerCertificate. L'exemple suivant montre comment procéder avec l’interface AWS CLI. Remplacez ExampleCertificate par le nom du certificat à récupérer.

aws iam get-server-certificate --server-certificate-name ExampleCertificate

Lorsque la commande précédente aboutit, elle renvoie le certificat, la chaîne de certificats (si une chaîne de certificats a été chargée) et des métadonnées relatives au certificat.

Note

Vous ne pouvez pas télécharger ou récupérer une clé privée depuis IAM après l'avoir téléchargée.

Pour utiliser les AWS Tools for Windows PowerShell pour récupérer un certificat, utilisez Get-IAMServerCertificate.

Liste des certificats de serveur (API AWS)

Pour utiliser l'API IAM pour afficher vos certificats de serveur téléchargés, envoyez une demande ListServerCertificates. L'exemple suivant montre comment procéder avec l’interface AWS CLI.

aws iam list-server-certificates

Lorsque la commande précédente aboutit, elle renvoie une liste qui contient les métadonnées relatives à chaque certificat.

Pour utiliser les AWS Tools for Windows PowerShell pour afficher vos certificats de serveur chargés, utilisez Get-IAMServerCertificates.

Ajout et suppression de balises pour les certificats de serveur (API AWS)

Vous pouvez attacher des balises à vos ressources IAM afin d'organiser et de contrôler leur accès. Pour utiliser l'API IAM afin de baliser un certificat de serveur existant, envoyez une demande TagServerCertificate. L'exemple suivant montre comment procéder avec l’interface AWS CLI.

aws iam tag-server-certificate --server-certificate-name ExampleCertificate --tags '{"Key": "ExampleKey", "Value": "ExampleValue"}'

Lorsque la commande précédente aboutit, aucune sortie n'est renvoyée.

Pour utiliser l'API IAM afin de supprimer les balises d'un certificat de serveur, envoyez une demande UntagServerCertificate. L'exemple suivant montre comment procéder avec l’interface AWS CLI.

aws iam untag-server-certificate --server-certificate-name ExampleCertificate --tag-keys ExampleKeyName

Lorsque la commande précédente aboutit, aucune sortie n'est renvoyée.

Renommage d'un certificat de serveur ou mise à jour de son chemin (API AWS)

Pour utiliser l'API IAM pour renommer un certificat de serveur ou mettre à jour son chemin, envoyez une demande UpdateServerCertificate. L'exemple suivant montre comment procéder avec l’interface AWS CLI.

Pour utiliser la commande suivante, remplacez les anciens et nouveaux noms de certificat et le chemin d'accès du certificat, et tapez la commande sur une seule ligne continue. L'exemple suivant inclut des sauts de ligne et des espaces supplémentaires pour en faciliter la lecture.

aws iam update-server-certificate --server-certificate-name ExampleCertificate --new-server-certificate-name CloudFrontCertificate --new-path /cloudfront/

Lorsque la commande précédente aboutit, elle ne renvoie pas de sortie.

Pour utiliser les AWS Tools for Windows PowerShell pour renommer un certificat de serveur ou mettre à jour son chemin, utilisez Update-IAMServerCertificate.

Suppression d'un certificat de serveur (API AWS)

Pour utiliser l'API IAM pour supprimer un certificat de serveur, envoyez une demande DeleteServerCertificate. L'exemple suivant montre comment procéder avec l’interface AWS CLI.

Pour utiliser la commande suivante, remplacez ExampleCertificate par le nom du certificat à supprimer.

aws iam delete-server-certificate --server-certificate-name ExampleCertificate

Lorsque la commande précédente aboutit, elle ne renvoie pas de sortie.

Pour utiliser les AWS Tools for Windows PowerShell pour supprimer un certificat de serveur, utilisez Remove-IAMServerCertificate.

Résolution des problèmes

Pour pouvoir charger un certificat vers IAM, vous devez vous assurer que le certificat, la clé privée et la chaîne de certificats sont tous codés PEM. Vous devez également vous assurer que la clé privée est non chiffrée. Voir les exemples suivantes.

Exemple de certificat codé PEM
-----BEGIN CERTIFICATE----- Base64-encoded certificate -----END CERTIFICATE-----
Exemple Clé privée non chiffrée codée PEM
-----BEGIN RSA PRIVATE KEY----- Base64-encoded private key -----END RSA PRIVATE KEY-----
Exemple Chaîne de certificats codée PEM

Une chaîne de certificats contient un ou plusieurs certificats. Vous pouvez utiliser un éditeur de texte, la commande copy sous Windows ou la commande cat Linux pour concaténer vos fichiers de certificats dans une chaîne. Lorsque vous incluez plusieurs certificats, chacun d'entre eux doit approuver le certificat précédent. Vous pouvez effectuer cette opération en concaténant les certificats, y compris le certificat d'autorité de certification racine en dernier.

L'exemple suivant contient trois certificats, mais votre chaîne de certificats peut en contenir plus ou moins.

-----BEGIN CERTIFICATE----- Base64-encoded certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Base64-encoded certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Base64-encoded certificate -----END CERTIFICATE-----

Si ces éléments ne sont pas au bon format pour le téléchargement vers IAM, vous pouvez utiliser OpenSSL pour les convertir au format approprié.

Pour convertir un certificat ou une chaîne de certificats DER en PEM

Utilisez la commande OpenSSL x509, comme dans l'exemple suivant. Dans la commande suivante, remplacez Certificate.der par le nom du fichier qui contient votre certificat codé DER. Remplacez Certificate.pem par le nom préféré du fichier de sortie devant contenir le certificat codé PEM.

openssl x509 -inform DER -in Certificate.der -outform PEM -out Certificate.pem

 

Pour convertir une clé privée de DER en PEM

Utilisez la commande OpenSSL rsa, comme dans l'exemple suivant. Dans la commande suivante, remplacez PrivateKey.der par le nom du fichier qui contient votre clé privée codée DER. Remplacez PrivateKey.pem par le nom préféré du fichier de sortie devant contenir la clé privée codée PEM.

openssl rsa -inform DER -in PrivateKey.der -outform PEM -out PrivateKey.pem

 

Pour déchiffrer une clé privée chiffrée (supprimer le mot de passe ou la phrase de passe)

Utilisez la commande OpenSSL rsa, comme dans l'exemple suivant. Pour utiliser la commande suivante, remplacez EncryptedPrivateKey.pem par le nom du fichier qui contient votre clé privée chiffrée. Remplacez PrivateKey.pem par le nom préféré du fichier de sortie devant contenir la clé privée non chiffrée codée PEM.

openssl rsa -in EncryptedPrivateKey.pem -out PrivateKey.pem

 

Pour convertir un ensemble de certificats de PKCS#12 (PFX) en PEM

Utilisez la commande OpenSSL pkcs12, comme dans l'exemple suivant. Dans la commande suivante, remplacez CertificateBundle.p12 par le nom du fichier qui contient votre ensemble de certificats codé PKCS#12. Remplacez CertificateBundle.pem par le nom préféré du fichier de sortie devant contenir l'ensemble de certificats codé PEM.

openssl pkcs12 -in CertificateBundle.p12 -out CertificateBundle.pem -nodes

 

Pour convertir un ensemble de certificats de PKCS#7 en PEM

Utilisez la commande OpenSSL pkcs7, comme dans l'exemple suivant. Dans la commande suivante, remplacez CertificateBundle.p7b par le nom du fichier qui contient votre ensemble de certificats codé PKCS#7. Remplacez CertificateBundle.pem par le nom préféré du fichier de sortie devant contenir l'ensemble de certificats codé PEM.

openssl pkcs7 -in CertificateBundle.p7b -print_certs -out CertificateBundle.pem