

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.

# Certificats de serveur
<a name="configuring-https.certificate"></a>

Cette rubrique décrit les différents types de certificats que vous pouvez utiliser pour configurer le protocole HTTPS et les circonstances dans lesquelles ils doivent être appliqués. Les sous-rubriques de cette section fournissent des instructions pour créer votre propre certificat et comment le télécharger.

**AWS Certificate Manager (ACM)**  
ACM est l'outil préféré pour mettre en service, gérer et déployer vos certificats de serveur. Vous pouvez le faire par programmation ou à l'aide du. AWS CLI Avec ACM, vous pouvez créer gratuitement un certificat fiable pour vos noms de domaine.

 Les certificats ACM ne peuvent être utilisés qu'avec les équilibreurs de AWS charge et les CloudFront distributions Amazon, et ACM n'est disponible que dans certaines régions. AWS Pour utiliser un certificat ACM avec Elastic Beanstalk, veuillez consulter [Configuration de la terminaison HTTPS au niveau de l'équilibreur de charge](configuring-https-elb.md). Pour plus d'informations sur ACM, consultez le [https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html). 

**Note**  
 Pour obtenir la liste des régions dans lesquelles ACM est disponible, consultez la section [Points de terminaison et quotas ACM](https://docs.aws.amazon.com/general/latest/gr/acm.html) dans le. *Référence générale d'Amazon Web Services* 

Si ACM n'est pas disponible dans votre AWS région, vous pouvez télécharger un certificat tiers ou auto-signé et une clé privée vers Gestion des identités et des accès AWS (IAM). Vous pouvez utiliser le AWS CLI pour télécharger le certificat. Les certificats stockés dans IAM peuvent être utilisés avec les équilibreurs de charge et CloudFront les distributions. Pour de plus amples informations, veuillez consulter [Chargement d'un certificat dans IAM](configuring-https-ssl-upload.md).

**Certificat d'une tierce partie**  
Si ACM n'est pas disponible dans votre région, vous pouvez acheter un certificat de confiance auprès d'un tiers. Un certificat tiers peut être utilisé pour déchiffrer le trafic HTTPS au niveau de votre équilibreur de charge, sur les instances backend, ou les deux.

**Certificat auto-signé**  
Pour le développement et les tests, vous pouvez [créer et signer un certificat](configuring-https-ssl.md) vous-même avec des outils open source. Les certificats auto-signés sont gratuits et faciles à créer, mais ne peuvent pas être utilisés pour le déchiffrement frontal sur les sites publics. Si vous essayez d'utiliser un certificat auto-signé pour une connexion HTTPS à un client, le navigateur de l'utilisateur affiche une erreur indiquant que votre site web n'est pas sécurisé. Vous pouvez, toutefois, utiliser un certificat auto-signé pour sécuriser les connexions backend sans problème.

# Création et signature d'un certificat X509
<a name="configuring-https-ssl"></a>

Vous pouvez créer un certificat X509 pour votre application avec `OpenSSL`. OpenSSL est une bibliothèque open source standard qui prend en charge un large éventail de fonctions de chiffrement, dont la création et la signature de certificats X509. Pour plus d'informations sur OpenSSL, consultez le site [http://www.openssl.org](https://www.openssl.org/).

**Note**  
Vous ne devez créer un certificat localement que si vous souhaitez [utiliser HTTPS dans un environnement à instance unique](https-singleinstance.md) ou [effectuer un nouveau chiffrement sur le backend](configuring-https-endtoend.md) avec un certificat auto-signé. Si vous possédez un nom de domaine, vous pouvez créer un certificat AWS et l'utiliser gratuitement dans un environnement à charge équilibrée en utilisant AWS Certificate Manager (ACM). Pour obtenir les instructions, consultez [Demande de certificat](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request.html) dans le *Guide de l'utilisateur AWS Certificate Manager *.

Exécutez `openssl version` dans la ligne de commande pour voir si OpenSSL est déjà installé. Si ce n'est pas le cas, vous pouvez créer et installer le code source en suivant les instructions du [ GitHub dépôt public](https://github.com/openssl/openssl) ou utiliser votre gestionnaire de paquets préféré. [OpenSSL étant également installé sur les images Linux d'Elastic Beanstalk, une alternative rapide consiste à se connecter à une instance dans un environnement d'exécution à l'aide de la commande de l'EB CLI : EC2 ](eb-cli3.md) **eb ssh**

```
~/eb$ eb ssh
[ec2-user@ip-255-55-55-255 ~]$ openssl version
OpenSSL 1.0.1k-fips 8 Jan 2015
```

Vous devez créer une clé privée RSA pour générer votre demande de signature de certificat (CSR). Pour créer votre clé privée, utilisez la commande **openssl genrsa** :

```
[ec2-user@ip-255-55-55-255 ~]$ openssl genrsa 2048 > privatekey.pem
Generating RSA private key, 2048 bit long modulus
.................................................................................................................................+++
...............+++
e is 65537 (0x10001)
```

*privatekey.pem*  
Nom du fichier dans lequel vous souhaitez enregistrer la clé privée. Généralement, la commande **openssl genrsa** affiche le contenu de la clé privée à l'écran, mais cette commande redirige le résultat vers un fichier. Choisissez un nom de fichier et stockez le fichier dans un emplacement sécurisé de façon à pouvoir le récupérer ultérieurement. Si vous perdez votre clé privée, vous ne pourrez pas utiliser votre certificat.

Un fichier CSR est un fichier que vous pouvez envoyer à une autorité de certification (CA) pour demander un certificat de serveur numérique. Pour créer un fichier CSR, utilisez la commande **openssl req** :

```
$ openssl req -new -key privatekey.pem -out csr.pem
You are about to be asked to enter information that will be incorporated 
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
```

Saisissez les informations demandées et appuyez sur **Entrée**. Le tableau suivant décrit les champs et fournit des exemples pour chacun d'entre eux.


****  

| Nom | Description | Exemple | 
| --- | --- | --- | 
| Nom du pays | Abréviation ISO de deux lettres de votre pays. | US = États-Unis | 
| État ou Province | Nom de l’état ou de la province où votre organisation se situe. Vous ne pouvez pas abréger ce nom. | Washington | 
| Nom de la localité | Nom de la ville où votre organisation se situe. | Seattle | 
| Nom de l’organisation | Nom légal complet de votre organisation. N’abrégez pas le nom de votre organisation. | Exemple d’entreprise | 
| Unité organisationnelle | (Facultatif) Informations supplémentaires sur l'organisation. | Marketing | 
| Nom commun | Nom de domaine complet de votre site web. Il doit correspondre au nom de domaine que les utilisateurs voient lorsqu'ils visitent votre site (sinon, des erreurs de certificat s'affichent). | www.exemple.com | 
| Adresse e-mail | Adresse e-mail de l'administrateur du site. | quelquun@exemple.com | 

Vous pouvez envoyer la demande de signature à un tiers pour la signature, ou la signer vous-même à des fins de test et de développement. Les certificats auto-signés peuvent également être utilisés pour le protocole HTTPS principal entre un équilibreur de charge et des instances. EC2 

Pour signer le certificat, utilisez la commande **openssl x509**. L'exemple suivant utilise la clé privée de l'étape précédente (*privatekey.pem*) et la demande de signature (*csr.pem*) pour créer un certificat public nommé *public.crt* valide pendant des *365* jours.

```
$ openssl x509 -req -days 365 -in csr.pem -signkey privatekey.pem -out public.crt
Signature ok
subject=/C=us/ST=washington/L=seattle/O=example corporation/OU=marketing/CN=www.example.com/emailAddress=someone@example.com
Getting Private key
```

Conservez la clé privée et le certificat public pour une utilisation ultérieure. Vous pouvez supprimer la demande de signature. Veillez à toujours [stocker la clé privée dans un emplacement sécurisé](https-storingprivatekeys.md) et à ne pas l'ajouter à votre code source.

Pour utiliser le certificat avec la plateforme Windows Server, vous devez le convertir au format PFX. Utilisez la commande suivante pour créer un certificat PFX à partir de la clé privée et des fichiers de certificat public :

```
$ openssl pkcs12 -export -out example.com.pfx -inkey privatekey.pem -in public.crt
Enter Export Password: password
Verifying - Enter Export Password: password
```

Maintenant que vous disposez d'un certificat, vous pouvez [le charger dans IAM](configuring-https-ssl-upload.md) pour l'utiliser avec un équilibreur de charge, ou [configurer les instances de votre environnement pour suspendre HTTPS](https-singleinstance.md).

# Chargement d'un certificat dans IAM
<a name="configuring-https-ssl-upload"></a>

Pour utiliser votre certificat avec l'équilibreur de charge de votre environnement Elastic Beanstalk, téléchargez le certificat et la clé privée vers (IAM). Gestion des identités et des accès AWS Vous pouvez utiliser un certificat stocké dans IAM avec les équilibreurs de charge Elastic Load Balancing et les distributions Amazon CloudFront .

**Note**  
AWS Certificate Manager (ACM) est l'outil préféré pour approvisionner, gérer et déployer vos certificats de serveur. Pour plus d'informations sur une demande de certificat ACM, consultez [Request a Certificate](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request.html) (Demande de certificat) dans le *AWS Certificate Manager User Guide* (Guide de l'utilisateur AWS Certificate Manager ). Pour plus d'informations sur l'importation de certificats tiers dans ACM, consultez [Importing Certificates](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) (Importation de certificats) dans le *AWS Certificate Manager User Guide* (Guide de l'utilisateur AWS Certificate Manager ). Utilisez IAM pour télécharger un certificat uniquement si ACM n'est pas [disponible dans votre AWS région](https://docs.aws.amazon.com/general/latest/gr/acm.html).

Vous pouvez utiliser le AWS Command Line Interface (AWS CLI) pour télécharger votre certificat. La commande suivante télécharge un certificat auto-signé nommé *https-cert.crt* avec une clé privée nommée : *private-key.pem*

```
$ aws iam upload-server-certificate --server-certificate-name elastic-beanstalk-x509 --certificate-body file://https-cert.crt --private-key file://private-key.pem
{
    "ServerCertificateMetadata": {
        "ServerCertificateId": "AS5YBEIONO2Q7CAIHKNGC",
        "ServerCertificateName": "elastic-beanstalk-x509",
        "Expiration": "2017-01-31T23:06:22Z",
        "Path": "/",
        "Arn": "arn:aws:iam::123456789012:server-certificate/elastic-beanstalk-x509",
        "UploadDate": "2016-02-01T23:10:34.167Z"
    }
}
```

Le `file://` préfixe indique de AWS CLI charger le contenu d'un fichier dans le répertoire courant. *elastic-beanstalk-x509*spécifie le nom pour appeler le certificat dans IAM.

Si vous avez acheté un certificat auprès d'une autorité de certification et reçu un fichier de chaîne de certificats, chargez-le également en incluant l'option `--certificate-chain` :

```
$ aws iam upload-server-certificate --server-certificate-name elastic-beanstalk-x509 --certificate-chain file://certificate-chain.pem --certificate-body file://https-cert.crt --private-key file://private-key.pem
```

Notez l'Amazon Resource Name (ARN) de votre certificat. Vous l'utiliserez lors de la mise à jour des paramètres de configuration de votre équilibreur de charge pour utiliser HTTPS.

**Note**  
Un certificat chargé dans IAM reste stocké même s'il n'est plus utilisé dans aucun équilibreur de charge de l'environnement. Il contient des données sensibles. Lorsque vous n'avez plus besoin du certificat pour aucun environnement, veillez à le supprimer. Pour de plus amples informations sur la suppression d'un certificat dans IAM, veuillez consulter [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html#delete-server-certificate](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html#delete-server-certificate).

Pour de plus amples informations sur les certificats de serveur dans IAM, veuillez consulter [Utilisation des certificats de serveur](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) dans le *Guide de l'utilisateur IAM*.

# Stockage sécurisé des clés privées dans Amazon S3
<a name="https-storingprivatekeys"></a>

La clé privée qui vous permet de vous connecter à votre certificat public est privée et ne doit pas être validée dans le code source. Vous pouvez éviter de stocker les clés privées dans les fichiers de configuration en les chargeant dans Amazon S3 et en configurant Elastic Beanstalk pour télécharger le fichier à partir d'Amazon S3 lors du déploiement de l'application.

L'exemple suivant décrit les sections [Ressources](environment-resources.md)et [fichiers](customize-containers-ec2.md#linux-files) d'un [fichier de configuration](ebextensions.md), qui télécharge un fichier de clé privée à partir d'un compartiment Amazon S3.

**Example .ebextensions/privatekey.config**  

```
Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: "s3"
          buckets: ["elasticbeanstalk-us-west-2-123456789012"]
          roleName: 
            "Fn::GetOptionSetting": 
              Namespace: "aws:autoscaling:launchconfiguration"
              OptionName: "IamInstanceProfile"
              DefaultValue: "aws-elasticbeanstalk-ec2-role"
files:
  # Private key
  "/etc/pki/tls/certs/server.key":
    mode: "000400"
    owner: root
    group: root
    authentication: "S3Auth"
    source: https://elasticbeanstalk-us-west-2-123456789012.s3.us-west-2.amazonaws.com/server.key
```

Remplacez l'URL et le nom de compartiment figurant dans l'exemple par vos propres valeurs. La première entrée du fichier ajoute une méthode d'authentification nommée `S3Auth` aux métadonnées du groupe Auto Scaling de l'environnement. Si vous avez configuré un [profil d'instance](concepts-roles-instance.md) personnalisé pour votre environnement, il est utilisé. Sinon, c'est la valeur par défaut du fichier `aws-elasticbeanstalk-ec2-role` qui s'applique. Le profil d'instance par défaut est autorisé à lire les données du compartiment de stockage Elastic Beanstalk. Si vous utilisez un autre compartiment, [ajoutez des autorisations au profil d'instance](iam-instanceprofile.md#iam-instanceprofile-addperms).

La deuxième entrée utilise la méthode d'authentification `S3Auth` pour télécharger la clé privée à partir de l'URL spécifiée et pour l'enregistrer dans `/etc/pki/tls/certs/server.key`. Le serveur proxy peut ensuite lire la clé privée à partir de cet emplacement afin de [mettre les connexions HTTPS hors service dans l'instance](https-singleinstance.md).

Le profil d'instance attribué aux EC2 instances de votre environnement doit être autorisé à lire l'objet clé dans le compartiment spécifié. [Assurez-vous que le profil d'instance est autorisé](iam-instanceprofile.md#iam-instanceprofile-verify) à lire l'objet dans IAM, et que les autorisations sur le compartiment et l'objet n'entraînent pas d'interdiction pour le profil d'instance.

**Pour afficher les autorisations d'un compartiment**

1. Ouvrez la [console de gestion Amazon S3](https://console.aws.amazon.com/s3/home).

1. Choisissez un compartiment.

1. Choisissez **Properties**, puis **Autorisations**.

1. Vérifiez que votre compte bénéficie d'une autorisation de lecture sur le compartiment.

1. Si une stratégie de compartiment est attachée, choisissez **Stratégie de compartiment** pour afficher les autorisations attribuées au compartiment.