

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
<a name="id_credentials_server-certs"></a>

Pour activer les connexions HTTPS à votre site Web ou à votre application dans AWS, vous avez besoin d'un certificat de SSL/TLS * serveur*. 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](https://docs.aws.amazon.com/general/latest/gr/acm.html) (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 externe sur des ressources. AWS Les certificats fournis par ACM sont gratuits et renouvelés automatiquement. Dans une [région prise en charge](https://docs.aws.amazon.com/general/latest/gr/acm.html), 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 *](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html). Pour plus d'informations sur la demande d'un certificat ACM, consultez [Demander un certificat public](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html) ou [Demander in certificat privé](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html) 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](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) 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](https://docs.aws.amazon.com/general/latest/gr/acm.html). 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 pouvoir l'utiliser. 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.

**Topics**
+ [Téléchargez un certificat de serveur (AWS API)](#upload-server-certificate)
+ [AWS Opérations d'API pour les certificats de serveur](#id_credentials_server-certs-api)
+ [Résolution des problèmes liés aux certificats de serveur](#server-certificate-troubleshooting)

## Téléchargez un certificat de serveur (AWS API)
<a name="upload-server-certificate"></a>

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 liés aux certificats de serveur](#server-certificate-troubleshooting).
+ Le certificat, la clé privée et la chaîne de certificats doivent tous l'être PEM-encoded. 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](#server-certificate-troubleshooting).

Pour utiliser l'API [ IAM ](https://docs.aws.amazon.com/IAM/latest/APIReference/) afin de télécharger un certificat, envoyez une [ UploadServerCertificate ](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UploadServerCertificate.html) demande. L'exemple suivant montre comment procéder avec l'[AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/). Dans cet exemple il est supposé que :
+ Le PEM-encoded certificat est stocké dans un fichier nommé`Certificate.pem`.
+ La chaîne de PEM-encoded certificats est stockée dans un fichier nommé`CertificateChain.pem`.
+ La PEM-encoded clé privée non chiffrée 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-le {{ExampleCertificate}} par un nom pour le certificat que vous avez chargé. Si vous souhaitez baliser le certificat, remplacez la paire clé-valeur {{ExampleKey}} et {{ExampleValue}} balisez 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 le rendre plus facile à lire.

```
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)](reference_identifiers.md#identifiers-arns), son nom convivial, son identifiant (ID), sa date d'expiration, ses balises, etc.

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

Pour utiliser le AWS Tools for Windows PowerShell pour télécharger un certificat, utilisez [ Publish-IAMServerCertificate](https://docs.aws.amazon.com/powershell/latest/reference/Index.html?page=Publish-IAMServerCertificate.html&tocid=Publish-IAMServerCertificate).

## AWS Opérations d'API pour les certificats de serveur
<a name="id_credentials_server-certs-api"></a>

Utilisez les commandes suivantes pour afficher, étiqueter, renommer et supprimer les certificats de serveur.
+ [GetServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServerCertificate.html)Utilisez-le 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.
+ [Get-IAMServerCertificate](https://docs.aws.amazon.com/powershell/latest/reference/Index.html?page=Get-IAMServerCertificate.html&tocid=Get-IAMServerCertificate)Utilisez-le pour récupérer un certificat.
+ Utilisez-le [ ListServerCertificates ](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListServerCertificates.html) 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-le [ Get-IAMServerCertificates ](https://docs.aws.amazon.com/powershell/latest/reference/Index.html?page=Get-IAMServerCertificates.html&tocid=Get-IAMServerCertificates) pour répertorier les certificats de serveur que vous avez chargés.
+ Permet [ TagServerCertificate ](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagServerCertificate.html) de baliser un certificat de serveur existant. 
+ Permet d'[UntagServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagServerCertificate.html)annuler le balisage d'un certificat de serveur.
+ Permet [ UpdateServerCertificate ](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServerCertificate.html) de renommer un certificat de serveur ou de mettre à jour son chemin.

   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 le rendre plus facile à lire.

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

   AWS Tools for Windows PowerShell Pour renommer un certificat de serveur ou mettre à jour son chemin d'accès, utilisez [ Update-IAMServerCertificate](https://docs.aws.amazon.com/powershell/latest/reference/Index.html?page=Update-IAMServerCertificate.html&tocid=Update-IAMServerCertificate).
+ Permet [ DeleteServerCertificate ](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServerCertificate.html) de supprimer un certificat de serveur. 

  Pour utiliser le AWS Tools for Windows PowerShell pour supprimer un certificat de serveur, utilisez [ Remove-IAMServerCertificate](https://docs.aws.amazon.com/powershell/latest/reference/Index.html?page=Remove-IAMServerCertificate.html&tocid=Remove-IAMServerCertificate).

## Résolution des problèmes liés aux certificats de serveur
<a name="server-certificate-troubleshooting"></a>

Avant de télécharger un certificat vers IAM, vous devez vous assurer que le certificat, la clé privée et la chaîne de certificats sont tous PEM-encoded présents. Vous devez également vous assurer que la clé privée est non chiffrée. Voir les exemples suivantes.

**Example Exemple de PEM-encoded certificat**  

```
-----BEGIN CERTIFICATE-----
{{Base64-encoded certificate}}
-----END CERTIFICATE-----
```

**Example Exemple de PEM-encoded clé privée non chiffrée**  

```
-----BEGIN RSA PRIVATE KEY-----
{{Base64-encoded private key}}
-----END RSA PRIVATE KEY-----
```

**Example Exemple de chaîne PEM-encoded de certificats**  
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](https://openssl.org/) pour les convertir au format approprié.

**Pour convertir un certificat ou une chaîne de certificats DER en PEM**  
Utilisez la [commande OpenSSL **x509**](https://openssl.org/docs/manmaster/man1/x509.html), comme dans l'exemple suivant. Dans l'exemple de commande suivant, remplacez `{{Certificate.der}}` par le nom du fichier contenant votre DER-encoded certificat. `{{Certificate.pem}}`Remplacez-le par le nom préféré du fichier de sortie qui doit contenir le PEM-encoded certificat.  

```
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**](https://openssl.org/docs/manmaster/man1/rsa.html), comme dans l'exemple suivant. Dans l'exemple de commande suivant, remplacez `{{PrivateKey.der}}` par le nom du fichier contenant votre clé DER-encoded privée. `{{PrivateKey.pem}}`Remplacez-le par le nom préféré du fichier de sortie contenant la clé PEM-encoded privée.  

```
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**](https://openssl.org/docs/manmaster/man1/rsa.html), 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. `{{PrivateKey.pem}}`Remplacez-le par le nom préféré du fichier de sortie contenant la clé privée PEM-encoded non chiffrée.  

```
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**](https://openssl.org/docs/manmaster/man1/pkcs12.html), 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. `{{CertificateBundle.pem}}`Remplacez-le par le nom préféré du fichier de sortie contenant le bundle de PEM-encoded certificats.  

```
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**](https://openssl.org/docs/manmaster/man1/pkcs7.html), 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. `{{CertificateBundle.pem}}`Remplacez-le par le nom préféré du fichier de sortie contenant le bundle de PEM-encoded certificats.  

```
openssl pkcs7 -in {{CertificateBundle.p7b}} -print_certs -out {{CertificateBundle.pem}}
```