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.
Important
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.
Rubriques
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 (dateNotAfter
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 liés aux certificats de serveur.
-
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 liés aux certificats de serveur.
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)
-
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 baliseEngineering
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.
Opérations d’API AWS pour les certificats de serveur
Utilisez les commandes suivantes pour afficher, étiqueter, renommer et supprimer les certificats de serveur.
-
Utilisez GetServerCertificate pour récupérer un certificat. Cette requête 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.
-
Utilisez Get-IAMServerCertificate pour récupérer un certificat.
-
Utilisez ListServerCertificates pour répertorier les certificats de serveur que vous avez chargés. La requête renvoie une liste qui contient les métadonnées relatives à chaque certificat.
-
Utilisez Get-IAMServerCertificates pour répertorier vos certificats de serveur chargés.
-
Utilisez TagServerCertificate pour étiqueter un certificat de serveur existant.
-
Utilisez UntagServerCertificate pour supprimer la balise d’un certificat de serveur.
-
Utilisez UpdateServerCertificate pour renommer un certificat de serveur ou mettre à jour son chemin d’accès.
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-nameCloudFrontCertificate
--new-path/cloudfront/
Pour utiliser les AWS Tools for Windows PowerShell pour renommer un certificat de serveur ou mettre à jour son chemin, utilisez Update-IAMServerCertificate.
-
Utilisez DeleteServerCertificate pour supprimer un certificat de serveur.
Pour utiliser les AWS Tools for Windows PowerShell pour supprimer un certificat de serveur, utilisez Remove-IAMServerCertificate.
Résolution des problèmes liés aux certificats de serveur
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 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
par le nom du fichier qui contient votre certificat codé DER. RemplacezCertificate.der
par le nom préféré du fichier de sortie devant contenir le certificat codé PEM.Certificate.pem
openssl x509 -inform DER -in
Certificate.der
-outform PEM -outCertificate.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
par le nom du fichier qui contient votre clé privée codée DER. RemplacezPrivateKey.der
par le nom préféré du fichier de sortie devant contenir la clé privée codée PEM.PrivateKey.pem
openssl rsa -inform DER -in
PrivateKey.der
-outform PEM -outPrivateKey.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
par le nom du fichier qui contient votre clé privée chiffrée. RemplacezEncryptedPrivateKey.pem
par le nom préféré du fichier de sortie devant contenir la clé privée non chiffrée codée PEM.PrivateKey.pem
openssl rsa -in
EncryptedPrivateKey.pem
-outPrivateKey.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
par le nom du fichier qui contient votre ensemble de certificats codé PKCS#12. RemplacezCertificateBundle.p12
par le nom préféré du fichier de sortie devant contenir l'ensemble de certificats codé PEM.CertificateBundle.pem
openssl pkcs12 -in
CertificateBundle.p12
-outCertificateBundle.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
par le nom du fichier qui contient votre ensemble de certificats codé PKCS#7. RemplacezCertificateBundle.p7b
par le nom préféré du fichier de sortie devant contenir l'ensemble de certificats codé PEM.CertificateBundle.pem
openssl pkcs7 -in
CertificateBundle.p7b
-print_certs -outCertificateBundle.pem