Je souhaite charger et importer un certificat SSL dans Gestion des identités et des accès AWS (AWS IAM).
Brève description
Il est recommandé de charger des certificats SSL vers AWS Certificate Manager (ACM). Si vous utilisez des algorithmes de certificat et des tailles de clé qui ne sont pas actuellement pris en charge par ACM ou les ressources AWS associées, vous pouvez également charger un certificat SSL vers IAM à l'aide de l'interface de ligne de commande AWS (AWS CLI).
Avant de pouvoir importer un certificat SSL dans IAM, procédez comme suit :
- 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é ou après son expiration.
- Le certificat, la clé privée et la chaîne de certificats doivent être encodés en PEM. Pour plus d'informations, consultez la section Exemple de chaîne de certificats encodée en PEM de la rubrique Utilisation de certificats de serveur.
Après avoir vérifié que votre certificat répond aux critères, assurez-vous que la chaîne de certificats est dans le bon ordre, puis chargez le certificat.
Résolution
Vérifier que la chaîne de certificats utilise l'ordre approprié
Remarque : si des erreurs surviennent lors de l'exécution de commandes de l'interface de ligne de commande AWS, vérifiez que vous utilisez la version la plus récente de l'AWS CLI.
La chaîne de certificats doit commencer par le certificat généré par votre autorité de certification (CA) et se terminer par le certificat racine de votre CA.
Remarque : si la chaîne de certificats n'est pas dans le bon ordre, le message d'erreur suivant peut s'afficher : « An error occurred (MalformedCertificate) when calling the UploadServerCertificate operation: Unable to validate certificate chain. The certificate chain must start with the immediate signing certificate, followed by any intermediaries in order. The index within the chain of the non-valid certificate is: -1 »
La chaîne de certificats encodée en PEM doit commencer par « -----BEGIN CERTIFICATE----- » et se terminer par « -----END CERTIFICATE----- », comme suit :
-----BEGIN CERTIFICATE-----
Base64-encoded Intermediate certificate 2
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Base64-encoded Intermediate certificate 1
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Optional: Base64-encoded Root certificate
-----END CERTIFICATE-----
Remarque : assurez-vous que le certificat ne comporte aucun espace de début ou de fin et qu'il ne contient pas de préfixe ou de suffixe en plus des blocs BEGIN et END.
La clé encodée en PEM doit utiliser le format suivant pour éviter le message d’erreur « MalformedCertificate: Unable to parse private key » :
-----BEGIN RSA PRIVATE KEY-----
Base64-encoded private key
-----END RSA PRIVATE KEY-----
Charger le certificat
Chargez le certificat en exécutant la commande de l'interface de ligne de commande AWS upload-server-certificate similaire à la commande suivante :
$ aws iam upload-server-certificate --server-certificate-name YourCertificate --certificate-body file://Certificate.pem --certificate-chain file://CertificateChain.pem --private-key file://PrivateKey.pem
Remarque :
- remplacez les noms de fichiers et YourCertificate par les noms des fichiers et du certificat que vous avez chargés.
- Vous devez spécifier le préfixe « file:// » dans les paramètres de corps du certificat, de chaîne de certificats et de clé privée de la requête d'API. Dans le cas contraire, la demande échoue avec le message d’erreur « MalformedCertificate: Unknown ».
Une fois le certificat chargé, la commande AWS upload-server-certificate renvoie les métadonnées du certificat chargé, notamment le nom de ressource Amazon (ARN), le nom convivial, l'identifiant (ID) et la date d'expiration du certificat.
Pour afficher le certificat chargé, exécutez la commande de l'interface de ligne de commande AWS list-server-certificates :
aws iam list-server-certificates
Remarque : si vous chargez un certificat de serveur à utiliser avec Amazon CloudFront, vous devez spécifier un chemin à l'aide de --path. Le chemin doit commencer par /cloudfront et inclure une barre oblique de fin, par exemple, /cloudfront/test/. Pour plus d’informations, consultez la section Comment puis-je résoudre les problèmes d'utilisation des certificats SSL personnalisés pour la distribution CloudFront ?
Pour supprimer le certificat, exécutez la commande de l'interface de ligne de commande AWS delete-server-certificate similaire à la commande suivante :
$ aws iam delete-server-certificate --server-certificate-name YourCertificate
Informations connexes
Services intégrés à ACM
Format du certificat et de la clé pour l'importation