

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.

# Suspension des connexions HTTPS sur des instances EC2 exécutant Ruby
<a name="https-singleinstance-ruby"></a>

Pour les types de conteneur Ruby, la façon dont vous activez HTTPS dépend du type de serveur d'applications utilisé.

**Topics**
+ [Configuration de HTTPS pour Ruby avec Puma](#Puma)
+ [Configuration de HTTPS pour Ruby avec Passenger](#Passenger)

## Configuration de HTTPS pour Ruby avec Puma
<a name="Puma"></a>

Pour les types de conteneurs Ruby qui utilisent Puma en tant que serveur d'applications, vous utilisez un [fichier de configuration](ebextensions.md) pour activer HTTPS.

Ajoutez l'extrait suivant à votre fichier de configuration, en remplaçant le certificat et la clé privée comme demandé, puis enregistrez-les dans le répertoire `.ebextensions` de votre bundle de fichiers source. Le fichier de configuration effectue les tâches suivantes :
+ La clé `files` crée les fichiers suivants sur l'instance :  
`/etc/nginx/conf.d/https.conf`  
Configure le serveur nginx. Ce fichier est chargé lorsque le service nginx démarre.  
`/etc/pki/tls/certs/server.crt`  
Crée le fichier de certificat sur l'instance. *certificate file contents*Remplacez-le par le contenu de votre certificat.  
YAML utilise une mise en retrait cohérente. Respectez le niveau de retrait lorsque vous remplacez du contenu dans un exemple de fichier de configuration et veillez à ce que votre éditeur de texte utilise des espaces, et non des caractères de tabulation, pour la mise en retrait.
Si vous avez des certificats intermédiaires, incluez-les dans `server.crt` après votre certificat de site.  

  ```
        -----BEGIN CERTIFICATE-----
    certificate file contents
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    first intermediate certificate
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    second intermediate certificate
    -----END CERTIFICATE-----
  ```  
`/etc/pki/tls/certs/server.key`  
Crée le fichier de clé privée sur l'instance. *private key contents*Remplacez-le par le contenu de la clé privée utilisée pour créer la demande de certificat ou le certificat auto-signé. 

**Example .ebextensions/https-instance.config**  

```
files:
  /etc/nginx/conf.d/https.conf:
    content: |
      # HTTPS server

      server {
          listen       443;
          server_name  localhost;
          
          ssl                  on;
          ssl_certificate      /etc/pki/tls/certs/server.crt;
          ssl_certificate_key  /etc/pki/tls/certs/server.key;
          
          ssl_session_timeout  5m;
          
          ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
          ssl_prefer_server_ciphers   on;
          
          location / {
              proxy_pass  http://my_app;
              proxy_set_header        Host            $host;
              proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header        X-Forwarded-Proto https;
          }

          location /assets {
            alias /var/app/current/public/assets;
            gzip_static on;
            gzip on;
            expires max;
            add_header Cache-Control public;
          }

          location /public {
            alias /var/app/current/public;
            gzip_static on;
            gzip on;
            expires max;
            add_header Cache-Control public;
          }
      }

  /etc/pki/tls/certs/server.crt:
    content: |
      -----BEGIN CERTIFICATE-----
      certificate file contents
      -----END CERTIFICATE-----
      
  /etc/pki/tls/certs/server.key:
    content: |      
      -----BEGIN RSA PRIVATE KEY-----
      private key contents # See note below.
      -----END RSA PRIVATE KEY-----
```

**Note**  
Évitez de valider un fichier de configuration qui contient votre clé privée de contrôle de code source. Une fois que vous avez testé la configuration et vérifié qu'elle fonctionne, stockez votre clé privée dans Amazon S3 et modifiez la configuration pour la télécharger durant le déploiement. Pour obtenir des instructions, veuillez consulter [Stockage sécurisé des clés privées dans Amazon S3](https-storingprivatekeys.md).

Dans un environnement à instance unique, vous devez également modifier le groupe de sécurité de l'instance pour autoriser le trafic sur le port 443. Le fichier de configuration suivant récupère l'ID du groupe de sécurité à l'aide d'une CloudFormation [fonction](ebextensions-functions.md) et y ajoute une règle.

**Example extensions .eb/ .config https-instance-single**  

```
Resources:
  sslSecurityGroupIngress: 
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      CidrIp: 0.0.0.0/0
```

Dans un environnement à répartition de charge équilibrée, vous configurez l'équilibreur de charge pour qu'il fasse [passer le trafic sécurisé sans le toucher, soit pour le déchiffrer et le rechiffrer à](https-tcp-passthrough.md) [des fins de chiffrement](configuring-https-endtoend.md). end-to-end

## Configuration de HTTPS pour Ruby avec Passenger
<a name="Passenger"></a>

Pour les types de conteneurs Ruby qui utilisent Passenger en tant que serveur d'applications, vous utilisez un fichier de configuration et un fichier JSON pour activer HTTPS.

**Pour configurer HTTPS pour Ruby avec Passenger**

1. Ajoutez l'extrait suivant à votre fichier de configuration, en remplaçant le certificat et la clé privée comme demandé, puis enregistrez-les dans le répertoire `.ebextensions` de votre bundle de fichiers source. Le fichier de configuration effectue les tâches suivantes :
   + La clé `files` crée les fichiers suivants sur l'instance :  
`/etc/pki/tls/certs/server.crt`  
Crée le fichier de certificat sur l'instance. *certificate file contents*Remplacez-le par le contenu de votre certificat.  
YAML utilise une mise en retrait cohérente. Respectez le niveau de retrait lorsque vous remplacez du contenu dans un exemple de fichier de configuration et veillez à ce que votre éditeur de texte utilise des espaces, et non des caractères de tabulation, pour la mise en retrait.
Si vous avez des certificats intermédiaires, incluez-les dans `server.crt` après votre certificat de site.  

     ```
           -----BEGIN CERTIFICATE-----
       certificate file contents
       -----END CERTIFICATE-----
       -----BEGIN CERTIFICATE-----
       first intermediate certificate
       -----END CERTIFICATE-----
       -----BEGIN CERTIFICATE-----
       second intermediate certificate
       -----END CERTIFICATE-----
     ```  
`/etc/pki/tls/certs/server.key`  
Crée le fichier de clé privée sur l'instance. *private key contents*Remplacez-le par le contenu de la clé privée utilisée pour créer la demande de certificat ou le certificat auto-signé.   
**Example Extrait .Ebextensions pour la configuration de HTTPS pour Ruby avec Passenger**  

   ```
   files:
     /etc/pki/tls/certs/server.crt:
       content: |
         -----BEGIN CERTIFICATE-----
         certificate file contents
         -----END CERTIFICATE-----
         
     /etc/pki/tls/certs/server.key:
       content: |      
         -----BEGIN RSA PRIVATE KEY-----
         private key contents # See note below.
         -----END RSA PRIVATE KEY-----
   ```
**Note**  
Évitez de valider un fichier de configuration qui contient votre clé privée de contrôle de code source. Une fois que vous avez testé la configuration et vérifié qu'elle fonctionne, stockez votre clé privée dans Amazon S3 et modifiez la configuration pour la télécharger durant le déploiement. Pour obtenir des instructions, veuillez consulter [Stockage sécurisé des clés privées dans Amazon S3](https-storingprivatekeys.md).

1. Créez un fichier texte et ajoutez le JSON suivant au fichier. Enregistrez-le dans le répertoire racine de votre groupe source avec le nom `passenger-standalone.json`. Ce fichier JSON configure Passenger pour utiliser HTTPS.
**Important**  
Ce fichier JSON ne doit pas contenir une marque d'ordre d'octet (BOM). Si tel est le cas, la bibliothèque Passenger JSON ne lira pas le fichier correctement et le service Passenger ne démarrera pas.  
**Example passenger-standalone.json**  

   ```
   {
     "ssl" : true,
     "ssl_port" : 443,
     "ssl_certificate" : "/etc/pki/tls/certs/server.crt",
     "ssl_certificate_key" : "/etc/pki/tls/certs/server.key"
   }
   ```

Dans un environnement à instance unique, vous devez également modifier le groupe de sécurité de l'instance pour autoriser le trafic sur le port 443. Le fichier de configuration suivant récupère l'ID du groupe de sécurité à l'aide d'une CloudFormation [fonction](ebextensions-functions.md) et y ajoute une règle.

**Example extensions .eb/ .config https-instance-single**  

```
Resources:
  sslSecurityGroupIngress: 
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 443
      FromPort: 443
      CidrIp: 0.0.0.0/0
```

Dans un environnement à répartition de charge équilibrée, vous configurez l'équilibreur de charge pour qu'il fasse [passer le trafic sécurisé sans le toucher, soit pour le déchiffrer et le rechiffrer à](https-tcp-passthrough.md) [des fins de chiffrement](configuring-https-endtoend.md). end-to-end