

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configuração da terminação de HTTPS na instância
<a name="https-singleinstance"></a>

Use [arquivos de configuração](ebextensions.md) para configurar o servidor de proxy que passa o tráfego para o aplicativo para encerrar conexões HTTPS. Isso é útil se você quer usar o HTTPS com um ambiente de uma única instância, ou se configurar o load balancer para passar o tráfego através sem descriptografá-lo.

Para habilitar o HTTPS, você deve permitir o tráfego de entrada na porta 443 para a EC2 instância em que seu aplicativo Elastic Beanstalk está sendo executado. Você faz isso usando a `Resources` chave no arquivo de configuração para adicionar uma regra para a porta 443 às regras de entrada do grupo de segurança do AWSEBSecurity Grupo.

O seguinte snippet adiciona uma regra de entrada para o security group `AWSEBSecurityGroup` que abre a porta 443 para todo o tráfego de um ambiente de uma única instância:

**`.ebextensions/https-instance-securitygroup.config`**

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

Em um ambiente com balanceamento de carga em um [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/) (Amazon VPC) padrão, é possível modificar essa política para aceitar apenas o tráfego do balanceador de carga. Consulte [Configurando a end-to-end criptografia em um ambiente Elastic Beanstalk com balanceamento de carga](configuring-https-endtoend.md) para ver um exemplo.

**Topics**
+ [Encerrar o HTTPS nas instâncias do EC2 que executam Docker](https-singleinstance-docker.md)
+ [Encerramento de HTTPS em EC2 instâncias que executam Go](https-singleinstance-go.md)
+ [Encerrar o HTTPS em instâncias do EC2 que executam Java SE](https-singleinstance-java.md)
+ [Encerrar o HTTPS em instâncias do EC2 que executam Node.js](https-singleinstance-nodejs.md)
+ [Encerramento de HTTPS em EC2 instâncias que executam PHP](https-singleinstance-php.md)
+ [Encerrar o HTTPS em instâncias do EC2 que executam Python](https-singleinstance-python.md)
+ [Como encerrar o HTTPS em instâncias do EC2 que executam o Ruby](https-singleinstance-ruby.md)
+ [Encerrar o HTTPS em instâncias do EC2 que executam Tomcat](https-singleinstance-tomcat.md)
+ [Encerrar o HTTPS em instâncias do Amazon EC2 executando .NET Core no Linux](https-singleinstance-dotnet-linux.md)
+ [Encerramento de HTTPS em EC2 instâncias da Amazon que executam o.NET](SSLNET.SingleInstance.md)

# Encerrar o HTTPS nas instâncias do EC2 que executam Docker
<a name="https-singleinstance-docker"></a>

Para os contêineres do Docker, use um [arquivo de configuração](ebextensions.md) para habilitar o HTTPS.

Adicione o seguinte trecho ao seu arquivo de configuração, substituindo o material de certificado e de chave privada como instruído, e salve-o no diretório `.ebextensions` do seu pacote de origem. O arquivo de configuração executa as seguintes tarefas:
+ A chave `files` cria os seguintes arquivos na instância:  
`/etc/nginx/conf.d/https.conf`  
Configura o servidor nginx. Este arquivo é carregado quando o serviço do nginx é iniciado.  
`/etc/pki/tls/certs/server.crt`  
Cria o arquivo de certificado na instância. *certificate file contents*Substitua pelo conteúdo do seu certificado.  
YAML depende de um recuo consistente. Compare o nível de recuo ao substituir o conteúdo em um arquivo de configuração de exemplo e se confira se o editor de texto usa espaços, e não caracteres de tabulação, como recuo.
Se você tiver certificados intermediários, inclua-os no `server.crt` depois do certificado do 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`  
Cria o arquivo de chave privada na instância. *private key contents*Substitua pelo conteúdo da chave privada usada para criar a solicitação de certificado ou o certificado autoassinado. 

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

```
files:
  /etc/nginx/conf.d/https.conf:
    mode: "000644"
    owner: root
    group: root
    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://docker;
          proxy_http_version 1.1;
          
          proxy_set_header Connection "";
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-Forwarded-Proto https;
        }
      }
      
  /etc/pki/tls/certs/server.crt:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN CERTIFICATE-----
      certificate file contents
      -----END CERTIFICATE-----
      
  /etc/pki/tls/certs/server.key:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN RSA PRIVATE KEY-----
      private key contents # See note below.
      -----END RSA PRIVATE KEY-----
```

**nota**  
Evite confirmar um arquivo de configuração que contenha sua chave privada para o controle de origem. Depois que você tiver testado a configuração e confirmado se ela está funcionando, armazene a chave privada no Amazon S3 e modifique a configuração para fazer download dele durante a implantação. Para instruções, consulte [Armazenar chaves privadas com segurança no Amazon S3](https-storingprivatekeys.md).

Em um ambiente de instância única, você também deve modificar o grupo de segurança da instância para habilitar o tráfego na porta 443. O arquivo de configuração a seguir recupera a ID do grupo de segurança usando uma CloudFormation [função](ebextensions-functions.md) e adiciona uma regra a ela.

**Example .ebextensions/ .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
```

Para um ambiente com balanceamento de carga, você configura o balanceador de carga para [passar tráfego seguro intocado ou descriptografar](https-tcp-passthrough.md) e recriptografar para [criptografia](configuring-https-endtoend.md). end-to-end

# Encerramento de HTTPS em EC2 instâncias que executam Go
<a name="https-singleinstance-go"></a>

Para os tipos de contêiner Go, você habilita o HTTPS com um [arquivo de configuração](ebextensions.md) e um arquivo de configuração nginx que configura o servidor nginx para usar HTTPS.

Adicione o seguinte trecho ao seu arquivo de configuração, substituindo os espaços reservados do certificado e da chave privada como instruído, e salve-o no diretório `.ebextensions` do pacote de origem. O arquivo de configuração executa as seguintes tarefas:
+ A chave `Resources` habilita a porta 443 no security group usado pela instância do seu ambiente. 
+ A chave `files` cria os seguintes arquivos na instância:  
`/etc/pki/tls/certs/server.crt`  
Cria o arquivo de certificado na instância. *certificate file contents*Substitua pelo conteúdo do seu certificado.  
YAML depende de um recuo consistente. Compare o nível de recuo ao substituir o conteúdo em um arquivo de configuração de exemplo e se confira se o editor de texto usa espaços, e não caracteres de tabulação, como recuo.
Se você tiver certificados intermediários, inclua-os no `server.crt` depois do certificado do 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`  
Cria o arquivo de chave privada na instância. *private key contents*Substitua pelo conteúdo da chave privada usada para criar a solicitação de certificado ou o certificado autoassinado. 

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

```
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-----
```

**nota**  
Evite confirmar um arquivo de configuração que contenha sua chave privada para o controle de origem. Depois que você tiver testado a configuração e confirmado se ela está funcionando, armazene a chave privada no Amazon S3 e modifique a configuração para fazer download dele durante a implantação. Para instruções, consulte [Armazenar chaves privadas com segurança no Amazon S3](https-storingprivatekeys.md).

Insira o seguinte em um arquivo com a extensão `.conf` no diretório `.ebextensions/nginx/conf.d/` do seu pacote de origem (ex. `.ebextensions/nginx/conf.d/https.conf`). *app\$1port*Substitua pelo número da porta que seu aplicativo escuta. Este exemplo configura o servidor nginx para escutar na porta 443 usando SSL. Para obter mais informações sobre esses arquivos de configuração na plataforma Go, consulte [Configurar o servidor de proxy](go-nginx.md).

**Example . ebextensions/nginx/conf.d/https.conf**  

```
# 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://localhost:app_port;
        proxy_set_header   Connection "";
        proxy_http_version 1.1;
        proxy_set_header        Host            $host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto https;
    }
}
```

Em um ambiente de instância única, você também deve modificar o grupo de segurança da instância para habilitar o tráfego na porta 443. O arquivo de configuração a seguir recupera a ID do grupo de segurança usando uma CloudFormation [função](ebextensions-functions.md) e adiciona uma regra a ela.

**Example .ebextensions/ .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
```

Para um ambiente com balanceamento de carga, você configura o balanceador de carga para [passar tráfego seguro intocado ou descriptografar](https-tcp-passthrough.md) e recriptografar para [criptografia](configuring-https-endtoend.md). end-to-end

# Encerrar o HTTPS em instâncias do EC2 que executam Java SE
<a name="https-singleinstance-java"></a>

Para os tipos de contêiner Java SE, você habilita o HTTPS com um [arquivo de configuração](ebextensions.md) .ebextensions e um arquivo de configuração nginx que configura o servidor nginx para usar HTTPS.

Todas as AL2 plataformas AL2023/suportam um recurso de configuração de proxy uniforme. Para obter mais informações sobre como configurar o servidor proxy nas versões da sua plataforma executando AL2023/AL2, consulte[Configuração de proxy reverso](platforms-linux-extend.proxy.md). 

Adicione o seguinte trecho ao seu arquivo de configuração, substituindo os espaços reservados do certificado e da chave privada como instruído, e salve-o no diretório `.ebextensions`. O arquivo de configuração executa as seguintes tarefas:
+ A chave `files` cria os seguintes arquivos na instância:  
`/etc/pki/tls/certs/server.crt`  
Cria o arquivo de certificado na instância. *certificate file contents*Substitua pelo conteúdo do seu certificado.  
YAML depende de um recuo consistente. Compare o nível de recuo ao substituir o conteúdo em um arquivo de configuração de exemplo e se confira se o editor de texto usa espaços, e não caracteres de tabulação, como recuo.
Se você tiver certificados intermediários, inclua-os no `server.crt` depois do certificado do 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`  
Cria o arquivo de chave privada na instância. *private key contents*Substitua pelo conteúdo da chave privada usada para criar a solicitação de certificado ou o certificado autoassinado. 

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

```
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-----
```

**nota**  
Evite confirmar um arquivo de configuração que contenha sua chave privada para o controle de origem. Depois que você tiver testado a configuração e confirmado se ela está funcionando, armazene a chave privada no Amazon S3 e modifique a configuração para fazer download dele durante a implantação. Para instruções, consulte [Armazenar chaves privadas com segurança no Amazon S3](https-storingprivatekeys.md).

Insira o seguinte em um arquivo com a extensão `.conf` no diretório `.ebextensions/nginx/conf.d/` do seu pacote de origem (ex. `.ebextensions/nginx/conf.d/https.conf`). *app\$1port*Substitua pelo número da porta que seu aplicativo escuta. Este exemplo configura o servidor nginx para escutar na porta 443 usando SSL. Para obter mais informações sobre esses arquivos de configuração na plataforma Java SE, consulte [Configurar o servidor de proxy](java-se-nginx.md).

**Example . ebextensions/nginx/conf.d/https.conf**  

```
# 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://localhost:app_port;
        proxy_set_header   Connection "";
        proxy_http_version 1.1;
        proxy_set_header        Host            $host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto https;
    }
}
```

Em um ambiente de instância única, você também deve modificar o grupo de segurança da instância para habilitar o tráfego na porta 443. O arquivo de configuração a seguir recupera a ID do grupo de segurança usando uma CloudFormation [função](ebextensions-functions.md) e adiciona uma regra a ela.

**Example .ebextensions/ .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
```

Para um ambiente com balanceamento de carga, você configura o balanceador de carga para [passar tráfego seguro intocado ou descriptografar](https-tcp-passthrough.md) e recriptografar para [criptografia](configuring-https-endtoend.md). end-to-end

# Encerrar o HTTPS em instâncias do EC2 que executam Node.js
<a name="https-singleinstance-nodejs"></a>

O exemplo de arquivo de configuração a seguir [estende a configuração padrão do nginx](nodejs-platform-proxy.md) para escutar na porta 443 e SSL/TLS encerrar conexões com um certificado público e uma chave privada.

Se você configurou seu ambiente para [relatórios de saúde aprimorados](health-enhanced.md), precisará configurar o nginx para gerar logs de acesso. Para fazer isso, apague a escrita do bloco de linhas sob o comentário `# For enhanced health...` removendo o `#` inicial.

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

```
files:
  /etc/nginx/conf.d/https.conf:
    mode: "000644"
    owner: root
    group: root
    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;

          # For enhanced health reporting support, uncomment this block:

          #if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2})") {
          #    set $year $1;
          #    set $month $2;
          #    set $day $3;
          #    set $hour $4;
          #}
          #access_log /var/log/nginx/healthd/application.log.$year-$month-$day-$hour healthd;
          #access_log  /var/log/nginx/access.log  main;
          
          location / {
              proxy_pass  http://nodejs;
              proxy_set_header   Connection "";
              proxy_http_version 1.1;
              proxy_set_header        Host            $host;
              proxy_set_header        X-Real-IP       $remote_addr;
              proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header        X-Forwarded-Proto https;
          }
      }
      
  /etc/pki/tls/certs/server.crt:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN CERTIFICATE-----
      certificate file contents
      -----END CERTIFICATE-----
      
  /etc/pki/tls/certs/server.key:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN RSA PRIVATE KEY-----
      private key contents # See note below.
      -----END RSA PRIVATE KEY-----
```

A chave `files` cria os seguintes arquivos na instância:

`/etc/nginx/conf.d/https.conf`  
Configura o servidor nginx. Este arquivo é carregado quando o serviço do nginx é iniciado.

`/etc/pki/tls/certs/server.crt`  
Cria o arquivo de certificado na instância. *certificate file contents*Substitua pelo conteúdo do seu certificado.  
YAML depende de um recuo consistente. Compare o nível de recuo ao substituir o conteúdo em um arquivo de configuração de exemplo e se confira se o editor de texto usa espaços, e não caracteres de tabulação, como recuo.
Se você tiver certificados intermediários, inclua-os no `server.crt` depois do certificado do 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`  
Cria o arquivo de chave privada na instância. *private key contents*Substitua pelo conteúdo da chave privada usada para criar a solicitação de certificado ou o certificado autoassinado. 

**nota**  
Evite confirmar um arquivo de configuração que contenha sua chave privada para o controle de origem. Depois que você tiver testado a configuração e confirmado se ela está funcionando, armazene a chave privada no Amazon S3 e modifique a configuração para fazer download dele durante a implantação. Para instruções, consulte [Armazenar chaves privadas com segurança no Amazon S3](https-storingprivatekeys.md).

Em um ambiente de instância única, você também deve modificar o grupo de segurança da instância para habilitar o tráfego na porta 443. O arquivo de configuração a seguir recupera a ID do grupo de segurança usando uma CloudFormation [função](ebextensions-functions.md) e adiciona uma regra a ela.

**Example .ebextensions/ .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
```

Para um ambiente com balanceamento de carga, você configura o balanceador de carga para [passar tráfego seguro intocado ou descriptografar](https-tcp-passthrough.md) e recriptografar para [criptografia](configuring-https-endtoend.md). end-to-end

# Encerramento de HTTPS em EC2 instâncias que executam PHP
<a name="https-singleinstance-php"></a>

Para tipos de contêiner PHP, você usa um [arquivo de configuração](ebextensions.md) para habilitar o Apache HTTP Server a usar HTTPS.

Adicione o seguinte trecho ao seu arquivo de configuração, substituindo o material de certificado e de chave privada como instruído, e salve-o no diretório `.ebextensions` do seu pacote de origem.

O arquivo de configuração executa as seguintes tarefas:
+ A chave `packages` usa o yum para instalar `mod24_ssl`.
+ A chave `files` cria os seguintes arquivos na instância:  
`/etc/httpd/conf.d/ssl.conf`  
Configura o servidor Apache. Este arquivo é carregado quando o serviço do Apache é iniciado.  
`/etc/pki/tls/certs/server.crt`  
Cria o arquivo de certificado na instância. *certificate file contents*Substitua pelo conteúdo do seu certificado.  
YAML depende de um recuo consistente. Compare o nível de recuo ao substituir o conteúdo em um arquivo de configuração de exemplo e se confira se o editor de texto usa espaços, e não caracteres de tabulação, como recuo.
Se você tiver certificados intermediários, inclua-os no `server.crt` depois do certificado do 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`  
Cria o arquivo de chave privada na instância. *private key contents*Substitua pelo conteúdo da chave privada usada para criar a solicitação de certificado ou o certificado autoassinado.

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

```
packages:
  yum:
    mod24_ssl : []

files:
  /etc/httpd/conf.d/ssl.conf:
    mode: "000644"
    owner: root
    group: root
    content: |
      LoadModule ssl_module modules/mod_ssl.so
      Listen 443
      <VirtualHost *:443>
        <Proxy *>
          Order deny,allow
          Allow from all
        </Proxy>

        SSLEngine             on
        SSLCertificateFile    "/etc/pki/tls/certs/server.crt"
        SSLCertificateKeyFile "/etc/pki/tls/certs/server.key"
        SSLCipherSuite        EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
        SSLProtocol           All -SSLv2 -SSLv3
        SSLHonorCipherOrder   On
        SSLSessionTickets     Off
        
        Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
        Header always set X-Frame-Options DENY
        Header always set X-Content-Type-Options nosniff
        
        ProxyPass / http://localhost:80/ retry=0
        ProxyPassReverse / http://localhost:80/
        ProxyPreserveHost on
        RequestHeader set X-Forwarded-Proto "https" early
        
      </VirtualHost>
      
  /etc/pki/tls/certs/server.crt:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN CERTIFICATE-----
      certificate file contents
      -----END CERTIFICATE-----
      
  /etc/pki/tls/certs/server.key:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN RSA PRIVATE KEY-----
      private key contents # See note below.
      -----END RSA PRIVATE KEY-----
```

**nota**  
Evite confirmar um arquivo de configuração que contenha sua chave privada para o controle de origem. Depois que você tiver testado a configuração e confirmado se ela está funcionando, armazene a chave privada no Amazon S3 e modifique a configuração para fazer download dele durante a implantação. Para instruções, consulte [Armazenar chaves privadas com segurança no Amazon S3](https-storingprivatekeys.md).

Em um ambiente de instância única, você também deve modificar o grupo de segurança da instância para habilitar o tráfego na porta 443. O arquivo de configuração a seguir recupera a ID do grupo de segurança usando uma CloudFormation [função](ebextensions-functions.md) e adiciona uma regra a ela.

**Example .ebextensions/ .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
```

Para um ambiente com balanceamento de carga, você configura o balanceador de carga para [passar tráfego seguro intocado ou descriptografar](https-tcp-passthrough.md) e recriptografar para [criptografia](configuring-https-endtoend.md). end-to-end

# Encerrar o HTTPS em instâncias do EC2 que executam Python
<a name="https-singleinstance-python"></a>

Para os tipos de contêiner Python que usam Apache HTTP Server com a Web Server Gateway Interface (WSGI), você usa um [arquivo de configuração](ebextensions.md) para habilitar o Apache HTTP Server a usar o HTTPS.

Adicione o seguinte trecho ao seu [arquivo de configuração](ebextensions.md), substituindo o material de certificado e de chave privada como instruído, e salve-o no diretório `.ebextensions` do seu pacote de origem. O arquivo de configuração executa as seguintes tarefas:
+ A chave `packages` usa o yum para instalar `mod_ssl`.
+ A chave `files` cria os seguintes arquivos na instância:  
`/etc/httpd/conf.d/ssl.conf`  
Configura o servidor Apache. Se o seu aplicativo não estiver nomeado como `application.py`, substitua o texto destacado no valor para `WSGIScriptAlias` pelo caminho local para seu aplicativo. Por exemplo, um aplicativo django pode estar em `django/wsgi.py`. A localização deve corresponder ao valor da opção `WSGIPath` que você definiu para seu ambiente.  
De acordo com os requisitos do seu aplicativo, você também pode precisar adicionar outros diretórios ao parâmetro **python-path**.   
`/etc/pki/tls/certs/server.crt`  
Cria o arquivo de certificado na instância. *certificate file contents*Substitua pelo conteúdo do seu certificado.  
YAML depende de um recuo consistente. Compare o nível de recuo ao substituir o conteúdo em um arquivo de configuração de exemplo e se confira se o editor de texto usa espaços, e não caracteres de tabulação, como recuo.
Se você tiver certificados intermediários, inclua-os no `server.crt` depois do certificado do 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`  
Cria o arquivo de chave privada na instância. *private key contents*Substitua pelo conteúdo da chave privada usada para criar a solicitação de certificado ou o certificado autoassinado. 
+ A chave `container_commands` interrompe o serviço httpd após tudo estar configurado, para que ele use o novo certificado e o arquivo `https.conf`.

**nota**  
O exemplo funciona apenas em ambientes usando a Plataforma [Python](create-deploy-python-container.md).

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

```
packages:
  yum:
    mod_ssl: []
    
files:
  /etc/httpd/conf.d/ssl.conf:
    mode: "000644"
    owner: root
    group: root
    content: |
      LoadModule wsgi_module modules/mod_wsgi.so
      WSGIPythonHome /var/app/venv/staging-LQM1lest
      WSGISocketPrefix run/wsgi
      WSGIRestrictEmbedded On
      Listen 443
      <VirtualHost *:443>
        SSLEngine on
        SSLCertificateFile "/etc/pki/tls/certs/server.crt"
        SSLCertificateKeyFile "/etc/pki/tls/certs/server.key"
        
        Alias /static/ /var/app/current/static/
        <Directory /var/app/current/static>
        Order allow,deny
        Allow from all
        </Directory>
        
        WSGIScriptAlias / /var/app/current/application.py
        
        <Directory /var/app/current>
        Require all granted
        </Directory>
        
        WSGIDaemonProcess wsgi-ssl processes=1 threads=15 display-name=%{GROUP} \
          python-path=/var/app/current \
          python-home=/var/app/venv/staging-LQM1lest \
          home=/var/app/current \
          user=webapp \
          group=webapp
        WSGIProcessGroup wsgi-ssl
        
      </VirtualHost>
      
  /etc/pki/tls/certs/server.crt:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN CERTIFICATE-----
      certificate file contents
      -----END CERTIFICATE-----
       
  /etc/pki/tls/certs/server.key:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN RSA PRIVATE KEY-----
      private key contents # See note below.
      -----END RSA PRIVATE KEY-----
      
container_commands:
  01killhttpd:
    command: "killall httpd"
  02waitforhttpddeath:
    command: "sleep 3"
```

**nota**  
Evite confirmar um arquivo de configuração que contenha sua chave privada para o controle de origem. Depois que você tiver testado a configuração e confirmado se ela está funcionando, armazene a chave privada no Amazon S3 e modifique a configuração para fazer download dele durante a implantação. Para instruções, consulte [Armazenar chaves privadas com segurança no Amazon S3](https-storingprivatekeys.md).

**Observação para ambientes Amazon Linux 2023**  
No Amazon Linux 2023, `mod_wsgi` deve ser instalado separadamente, pois não está disponível nos repositórios de pacotes. Para obter instruções de instalação, consulte [mod\$1wsgi](https://pypi.org/project/mod-wsgi/) no PyPI.

Em um ambiente de instância única, você também deve modificar o grupo de segurança da instância para habilitar o tráfego na porta 443. O arquivo de configuração a seguir recupera a ID do grupo de segurança usando uma CloudFormation [função](ebextensions-functions.md) e adiciona uma regra a ela.

**Example .ebextensions/ .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
```

Para um ambiente com balanceamento de carga, você configura o balanceador de carga para [passar tráfego seguro intocado ou descriptografar](https-tcp-passthrough.md) e recriptografar para [criptografia](configuring-https-endtoend.md). end-to-end

# Como encerrar o HTTPS em instâncias do EC2 que executam o Ruby
<a name="https-singleinstance-ruby"></a>

Para tipos de contêiner do Ruby, o modo como o HTTPS é habilitado depende do tipo de servidor de aplicativos utilizado.

**Topics**
+ [Configurar HTTPS para Ruby com Puma](#Puma)
+ [Configurar o HTTPS para Ruby com o Passenger](#Passenger)

## Configurar HTTPS para Ruby com Puma
<a name="Puma"></a>

Para tipos de contêiner do Ruby que usam o Puma como servidor de aplicativos, você pode usar um [arquivo de configuração](ebextensions.md) para ativar o HTTPS.

Adicione o seguinte trecho ao seu arquivo de configuração, substituindo o material de certificado e de chave privada como instruído, e salve-o no diretório `.ebextensions` do seu pacote de origem. O arquivo de configuração executa as seguintes tarefas:
+ A chave `files` cria os seguintes arquivos na instância:  
`/etc/nginx/conf.d/https.conf`  
Configura o servidor nginx. Este arquivo é carregado quando o serviço do nginx é iniciado.  
`/etc/pki/tls/certs/server.crt`  
Cria o arquivo de certificado na instância. *certificate file contents*Substitua pelo conteúdo do seu certificado.  
YAML depende de um recuo consistente. Compare o nível de recuo ao substituir o conteúdo em um arquivo de configuração de exemplo e se confira se o editor de texto usa espaços, e não caracteres de tabulação, como recuo.
Se você tiver certificados intermediários, inclua-os no `server.crt` depois do certificado do 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`  
Cria o arquivo de chave privada na instância. *private key contents*Substitua pelo conteúdo da chave privada usada para criar a solicitação de certificado ou o certificado autoassinado. 

**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-----
```

**nota**  
Evite confirmar um arquivo de configuração que contenha sua chave privada para o controle de origem. Depois que você tiver testado a configuração e confirmado se ela está funcionando, armazene a chave privada no Amazon S3 e modifique a configuração para fazer download dele durante a implantação. Para instruções, consulte [Armazenar chaves privadas com segurança no Amazon S3](https-storingprivatekeys.md).

Em um ambiente de instância única, você também deve modificar o grupo de segurança da instância para habilitar o tráfego na porta 443. O arquivo de configuração a seguir recupera a ID do grupo de segurança usando uma CloudFormation [função](ebextensions-functions.md) e adiciona uma regra a ela.

**Example .ebextensions/ .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
```

Para um ambiente com balanceamento de carga, você configura o balanceador de carga para [passar tráfego seguro intocado ou descriptografar](https-tcp-passthrough.md) e recriptografar para [criptografia](configuring-https-endtoend.md). end-to-end

## Configurar o HTTPS para Ruby com o Passenger
<a name="Passenger"></a>

Para tipos de contêiner do Ruby que usam o Passenger como servidor de aplicativos, você pode usar um arquivo de configuração e um arquivo JSON para ativar o HTTPS.

**Para configurar o HTTPS para Ruby com o Passenger**

1. Adicione o seguinte trecho ao seu arquivo de configuração, substituindo o material de certificado e de chave privada como instruído, e salve-o no diretório `.ebextensions` do seu pacote de origem. O arquivo de configuração executa as seguintes tarefas:
   + A chave `files` cria os seguintes arquivos na instância:  
`/etc/pki/tls/certs/server.crt`  
Cria o arquivo de certificado na instância. *certificate file contents*Substitua pelo conteúdo do seu certificado.  
YAML depende de um recuo consistente. Compare o nível de recuo ao substituir o conteúdo em um arquivo de configuração de exemplo e se confira se o editor de texto usa espaços, e não caracteres de tabulação, como recuo.
Se você tiver certificados intermediários, inclua-os no `server.crt` depois do certificado do 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`  
Cria o arquivo de chave privada na instância. *private key contents*Substitua pelo conteúdo da chave privada usada para criar a solicitação de certificado ou o certificado autoassinado.   
**Example Snippet .Ebextensions para configuração do HTTPS para Ruby com 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-----
   ```
**nota**  
Evite confirmar um arquivo de configuração que contenha sua chave privada para o controle de origem. Depois que você tiver testado a configuração e confirmado se ela está funcionando, armazene a chave privada no Amazon S3 e modifique a configuração para fazer download dele durante a implantação. Para instruções, consulte [Armazenar chaves privadas com segurança no Amazon S3](https-storingprivatekeys.md).

1. Crie um arquivo de texto e adicione o JSON a seguir ao arquivo. Salve-o no diretório raiz do pacote de origem com o nome `passenger-standalone.json`. Esse arquivo JSON configura o Passenger para usar HTTPS.
**Importante**  
Esse arquivo JSON não deve conter a marca de ordem de bytes (BOM). Se a resposta for sim, a biblioteca JSON do Passenger não lerá o arquivo corretamente e o serviço Passenger não será iniciado.  
**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"
   }
   ```

Em um ambiente de instância única, você também deve modificar o grupo de segurança da instância para habilitar o tráfego na porta 443. O arquivo de configuração a seguir recupera a ID do grupo de segurança usando uma CloudFormation [função](ebextensions-functions.md) e adiciona uma regra a ela.

**Example .ebextensions/ .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
```

Para um ambiente com balanceamento de carga, você configura o balanceador de carga para [passar tráfego seguro intocado ou descriptografar](https-tcp-passthrough.md) e recriptografar para [criptografia](configuring-https-endtoend.md). end-to-end

# Encerrar o HTTPS em instâncias do EC2 que executam Tomcat
<a name="https-singleinstance-tomcat"></a>

Para os tipos de contêiner Tomcat, você usa um [arquivo de configuração](ebextensions.md) para habilitar o Apache HTTP Server a usar HTTPS ao atuar como proxy reverso para o Tomcat.

Adicione o seguinte trecho ao seu arquivo de configuração, substituindo o material de certificado e de chave privada como instruído, e salve-o no diretório `.ebextensions` do seu pacote de origem. O arquivo de configuração executa as seguintes tarefas:
+ A chave `files` cria os seguintes arquivos na instância:  
`/etc/pki/tls/certs/server.crt`  
Cria o arquivo de certificado na instância. *certificate file contents*Substitua pelo conteúdo do seu certificado.  
YAML depende de um recuo consistente. Compare o nível de recuo ao substituir o conteúdo em um arquivo de configuração de exemplo e se confira se o editor de texto usa espaços, e não caracteres de tabulação, como recuo.  
`/etc/pki/tls/certs/server.key`  
Cria o arquivo de chave privada na instância. *private key contents*Substitua pelo conteúdo da chave privada usada para criar a solicitação de certificado ou o certificado autoassinado.   
`/opt/elasticbeanstalk/hooks/appdeploy/post/99_start_httpd.sh`  
Cria um gancho de implantação pós-script para reiniciar o serviço httpd.

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

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

  /opt/elasticbeanstalk/hooks/appdeploy/post/99_start_httpd.sh:
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      sudo service httpd restart
```

Você também precisa configurar o servidor de proxy do ambiente para escutar na porta 443. A configuração do Apache 2.4 a seguir adiciona um ouvinte na porta 443. Para saber mais, consulte [Configurar o servidor de proxy](java-tomcat-proxy.md).

**Example . ebextensions/httpd/conf.d/ssl.conf**  

```
Listen 443
<VirtualHost *:443> 
  ServerName server-name
  SSLEngine on 
  SSLCertificateFile "/etc/pki/tls/certs/server.crt" 
  SSLCertificateKeyFile "/etc/pki/tls/certs/server.key" 

  <Proxy *> 
    Require all granted 
  </Proxy> 
  ProxyPass / http://localhost:8080/ retry=0 
  ProxyPassReverse / http://localhost:8080/ 
  ProxyPreserveHost on 

  ErrorLog /var/log/httpd/elasticbeanstalk-ssl-error_log 

</VirtualHost>
```

O fornecedor do seu certificado pode incluir certificados intermediários que você pode instalar para melhorar a compatibilidade com clientes móveis. Configure o Apache com um pacote de certificate authority (CA – autoridade de certificação) intermediária adicionando o seguinte ao arquivo de configuração SSL (consulte [Estendendo e substituindo a configuração padrão do Apache — Amazon Linux AMI () AL1](java-tomcat-proxy.md#java-tomcat-proxy-apache) para saber o local):
+ No conteúdo do arquivo `ssl.conf`, especifique o arquivo de cadeia:

  ```
  SSLCertificateKeyFile "/etc/pki/tls/certs/server.key"
  SSLCertificateChainFile "/etc/pki/tls/certs/gd_bundle.crt"
  SSLCipherSuite        EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
  ```
+ Adicione uma nova entrada à chave `files` com o conteúdo dos certificados intermediários:

  ```
  files:
    /etc/pki/tls/certs/gd_bundle.crt:
      mode: "000400"
      owner: root
      group: root
      content: |
        -----BEGIN CERTIFICATE-----
        First intermediate certificate
        -----END CERTIFICATE-----
        -----BEGIN CERTIFICATE-----
        Second intermediate certificate
        -----END CERTIFICATE-----
  ```

**nota**  
Evite confirmar um arquivo de configuração que contenha sua chave privada para o controle de origem. Depois que você tiver testado a configuração e confirmado se ela está funcionando, armazene a chave privada no Amazon S3 e modifique a configuração para fazer download dele durante a implantação. Para instruções, consulte [Armazenar chaves privadas com segurança no Amazon S3](https-storingprivatekeys.md).

Em um ambiente de instância única, você também deve modificar o grupo de segurança da instância para habilitar o tráfego na porta 443. O arquivo de configuração a seguir recupera a ID do grupo de segurança usando uma CloudFormation [função](ebextensions-functions.md) e adiciona uma regra a ela.

**Example .ebextensions/ .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
```

Para um ambiente com balanceamento de carga, você configura o balanceador de carga para [passar tráfego seguro intocado ou descriptografar](https-tcp-passthrough.md) e recriptografar para [criptografia](configuring-https-endtoend.md). end-to-end

# Encerrar o HTTPS em instâncias do Amazon EC2 executando .NET Core no Linux
<a name="https-singleinstance-dotnet-linux"></a>

Para os tipos de contêiner .NET Core no Linux, habilite o HTTPS com um `.ebextensions` [arquivo de configuração](ebextensions.md) e um arquivo de configuração nginx que configura o servidor nginx para usar HTTPS.

Adicione o seguinte trecho ao seu arquivo de configuração, substituindo os espaços reservados do certificado e da chave privada como instruído, e salve-o no diretório `.ebextensions`. O arquivo de configuração executa as seguintes tarefas:
+ A chave `files` cria os seguintes arquivos na instância:  
`/etc/pki/tls/certs/server.crt`  
Cria o arquivo de certificado na instância. *certificate file contents*Substitua pelo conteúdo do seu certificado.  
YAML depende de um recuo consistente. Compare o nível de recuo ao substituir o conteúdo em um arquivo de configuração de exemplo e se confira se o editor de texto usa espaços, e não caracteres de tabulação, como recuo.
Se você tiver certificados intermediários, inclua-os no `server.crt` depois do certificado do 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`  
Cria o arquivo de chave privada na instância. *private key contents*Substitua pelo conteúdo da chave privada usada para criar a solicitação de certificado ou o certificado autoassinado. 

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

```
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-----
```

**nota**  
Evite confirmar um arquivo de configuração que contenha sua chave privada para o controle de origem. Depois que você tiver testado a configuração e confirmado se ela está funcionando, armazene a chave privada no Amazon S3 e modifique a configuração para fazer download dele durante a implantação. Para instruções, consulte [Armazenar chaves privadas com segurança no Amazon S3](https-storingprivatekeys.md).

Insira o seguinte em um arquivo com a extensão `.conf` no diretório `.platform/nginx/conf.d/` do seu pacote de origem (por ex. `.platform/nginx/conf.d/https.conf`). *app\$1port*Substitua pelo número da porta que seu aplicativo escuta. Este exemplo configura o servidor nginx para escutar na porta 443 usando SSL. Para obter mais informações sobre esses arquivos de configuração na plataforma .NET Core no Linux, consulte [Configurar o servidor de proxy](dotnet-linux-platform-nginx.md).

**Example . platform/nginx/conf.d/https.conf**  

```
# HTTPS server

server {
    listen       443 ssl;
    server_name  localhost;
    
    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://localhost:app_port;
        proxy_set_header   Connection "";
        proxy_http_version 1.1;
        proxy_set_header        Host            $host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto https;
    }
}
```

Em um ambiente de instância única, você também deve modificar o grupo de segurança da instância para habilitar o tráfego na porta 443. O arquivo de configuração a seguir recupera a ID do grupo de segurança usando uma CloudFormation [função](ebextensions-functions.md) e adiciona uma regra a ela.

**Example .ebextensions/ .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
```

Para um ambiente com balanceamento de carga, você configura o balanceador de carga para [passar tráfego seguro intocado ou descriptografar](https-tcp-passthrough.md) e recriptografar para [criptografia](configuring-https-endtoend.md). end-to-end

# Encerramento de HTTPS em EC2 instâncias da Amazon que executam o.NET
<a name="SSLNET.SingleInstance"></a>

O [arquivo de configuração](ebextensions.md) a seguir cria e executa um PowerShell script do Windows que executa as seguintes tarefas:
+ Verifica se há um certificado HTTPS vinculado à porta 443.
+ Obtém o [certificado PFX](configuring-https-ssl.md) de um bucket do Amazon S3.
**nota**  
Adicione uma política `AmazonS3ReadOnlyAccess` ao `aws-elasticbeanstalk-ec2-role` para acessar o certificado SSL no bucket do Amazon S3.
+ Obtém a senha de AWS Secrets Manager.
**nota**  
Adicione uma declaração em `aws-elasticbeanstalk-ec2-role` que permita a ação `secretsmanager:GetSecretValue` para o segredo que contém a senha do certificado
+ Instala o certificado.
+ Vincula o certificado à porta 443.
**nota**  
Para remover o endpoint HTTP (porta 80), inclua o comando `Remove-WebBinding` na seção **Remova a vinculação HTTP do exemplo**.

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

```
files:
  "C:\\certs\\install-cert.ps1":
    content: |
      import-module webadministration
      ## Settings - replace the following values with your own
      $bucket = "amzn-s3-demo-bucket"  ## S3 bucket name
      $certkey = "example.com.pfx"    ## S3 object key for your PFX certificate
      $secretname = "example_secret"  ## AWS Secrets Manager name for a secret that contains the certificate's password
      ##

      # Set variables
      $certfile = "C:\cert.pfx"
      $pwd = Get-SECSecretValue -SecretId $secretname | select -expand SecretString

      # Clean up existing binding
      if ( Get-WebBinding "Default Web Site" -Port 443 ) {
        Echo "Removing WebBinding"
        Remove-WebBinding -Name "Default Web Site" -BindingInformation *:443:
      }
      if ( Get-Item -path IIS:\SslBindings\0.0.0.0!443 ) {
        Echo "Deregistering WebBinding from IIS"
        Remove-Item -path IIS:\SslBindings\0.0.0.0!443
      }

      # Download certificate from S3
      Read-S3Object -BucketName $bucket -Key $certkey -File $certfile
      
      # Install certificate
      Echo "Installing cert..."
      $securepwd = ConvertTo-SecureString -String $pwd -Force -AsPlainText
      $cert = Import-PfxCertificate -FilePath $certfile cert:\localMachine\my -Password $securepwd
      
      # Create site binding
      Echo "Creating and registering WebBinding"
      New-WebBinding -Name "Default Web Site" -IP "*" -Port 443 -Protocol https
      New-Item -path IIS:\SslBindings\0.0.0.0!443 -value $cert -Force
      
      ## Remove the HTTP binding
      ## (optional) Uncomment the following line to unbind port 80
      # Remove-WebBinding -Name "Default Web Site" -BindingInformation *:80:
      ##
      
      # Update firewall
      netsh advfirewall firewall add rule name="Open port 443" protocol=TCP localport=443 action=allow dir=OUT

commands:
  00_install_ssl:
    command: powershell -NoProfile -ExecutionPolicy Bypass -file C:\\certs\\install-cert.ps1
```

Em um ambiente de instância única, você também deve modificar o grupo de segurança da instância para habilitar o tráfego na porta 443. O arquivo de configuração a seguir recupera a ID do grupo de segurança usando uma CloudFormation [função](ebextensions-functions.md) e adiciona uma regra a ela.

**Example .ebextensions/ .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
```

Para um ambiente com balanceamento de carga, você configura o balanceador de carga para [passar tráfego seguro intocado ou descriptografar](https-tcp-passthrough.md) e recriptografar para [criptografia](configuring-https-endtoend.md). end-to-end