

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengkonfigurasi Pengakhiran HTTPS pada instance
<a name="https-singleinstance"></a>

Anda dapat menggunakan [file konfigurasi](ebextensions.md) untuk mengonfigurasi server proksi yang melewati lalu lintas ke aplikasi Anda untuk mengakhiri koneksi HTTPS. Hal ini berguna jika Anda ingin menggunakan HTTPS dengan lingkungan intans tunggal, atau jika Anda mengonfigurasi penyeimbang beban Anda untuk melewati lalu lintas tanpa mendekripsinya.

Untuk mengaktifkan HTTPS, Anda harus mengizinkan lalu lintas masuk di port 443 ke EC2 instance tempat aplikasi Elastic Beanstalk Anda berjalan. Anda melakukan ini dengan menggunakan `Resources` kunci dalam file konfigurasi untuk menambahkan aturan untuk port 443 ke aturan ingress untuk AWSEBSecurity grup keamanan Grup.

Snippet berikut menambahkan aturan masuk ke `AWSEBSecurityGroup` grup keamanan yang membuka port 443 ke semua lalu lintas untuk lingkungan instans tunggal:

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

Dalam lingkungan yang seimbang dengan beban di [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/) (Amazon VPC) default, Anda dapat mengubah kebijakan ini hanya untuk menerima lalu lintas dari penyeimbang beban. Lihat [Mengkonfigurasi end-to-end enkripsi dalam lingkungan Elastic Beanstalk Beanstalk yang seimbang](configuring-https-endtoend.md) untuk contoh.

**Topics**
+ [Mengakhiri HTTPS di instans EC2 yang menjalankan Docker](https-singleinstance-docker.md)
+ [Mengakhiri HTTPS pada EC2 instance yang menjalankan Go](https-singleinstance-go.md)
+ [Mengakhiri HTTPS pada instans EC2 yang menjalankan Java SE](https-singleinstance-java.md)
+ [Mengakhiri HTTPS pada instans EC2 yang menjalankan Node.js](https-singleinstance-nodejs.md)
+ [Mengakhiri HTTPS pada EC2 instance yang menjalankan PHP](https-singleinstance-php.md)
+ [Mengakhiri HTTPS pada instans EC2 yang menjalankan Python](https-singleinstance-python.md)
+ [Mengakhiri HTTPS pada instans EC2 yang menjalankan Ruby](https-singleinstance-ruby.md)
+ [Mengakhiri HTTPS pada instans EC2 yang menjalankan Tomcat](https-singleinstance-tomcat.md)
+ [Mengakhiri HTTPS pada instans Amazon EC2 yang menjalankan .NET Core di Linux](https-singleinstance-dotnet-linux.md)
+ [Mengakhiri HTTPS di EC2 instans Amazon yang menjalankan .NET](SSLNET.SingleInstance.md)

# Mengakhiri HTTPS di instans EC2 yang menjalankan Docker
<a name="https-singleinstance-docker"></a>

Untuk kontainer Docker, Anda menggunakan [file konfigurasi](ebextensions.md) untuk mengaktifkan HTTPS.

Tambahkan snippet berikut ke file konfigurasi Anda, menggantikan sertifikat dan materi kunci pribadi seperti yang diinstruksikan, dan simpan snippet di direktori `.ebextensions` paket sumber Anda. File konfigurasi melakukan tugas berikut:
+ Kunci `files` tersebut membuat file berikut pada instans:  
`/etc/nginx/conf.d/https.conf`  
Konfigurasikan server nginx. File ini dimuat ketika layanan nginx dimulai.  
`/etc/pki/tls/certs/server.crt`  
Membuat file sertifikat pada instans. Ganti *certificate file contents* dengan isi sertifikat Anda.  
YAML bergantung pada indentasi yang konsisten. Cocokkan tingkat indentasi saat mengganti konten dalam file konfigurasi contoh dan pastikan bahwa editor teks Anda menggunakan spasi, bukan karakter tab, untuk indentasi.
Jika Anda memiliki sertifikat menengah, sertakan sertifikat tersebut di `server.crt` setelah sertifikat situs Anda.  

  ```
        -----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`  
Membuat file kunci pribadi pada instans. Ganti *private key contents* dengan isi kunci pribadi yang digunakan untuk membuat permintaan sertifikat atau sertifikat yang ditandatangani sendiri. 

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

**catatan**  
Hindari melakukan file konfigurasi yang berisi kunci pribadi Anda ke kontrol sumber. Setelah Anda menguji konfigurasi dan mengonfirmasi bahwa konfigurasi berfungsi, simpan kunci pribadi Anda di Amazon S3 dan ubah konfigurasi untuk mengunduhnya selama deployment. Untuk instruksi, lihat [Menyimpan kunci pribadi dengan aman di Amazon S3](https-storingprivatekeys.md).

Pada lingkungan instans tunggal, Anda juga harus mengubah grup keamanan instans untuk mengizinkan lalu lintas pada port 443. File konfigurasi berikut mengambil ID grup keamanan menggunakan CloudFormation [fungsi](ebextensions-functions.md) dan menambahkan aturan ke dalamnya.

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

Untuk lingkungan yang seimbang beban, Anda mengonfigurasi penyeimbang beban untuk [meneruskan lalu lintas aman melalui yang tidak tersentuh](https-tcp-passthrough.md), atau [mendekripsi](configuring-https-endtoend.md) dan mengenkripsi ulang untuk enkripsi. end-to-end

# Mengakhiri HTTPS pada EC2 instance yang menjalankan Go
<a name="https-singleinstance-go"></a>

Untuk tipe kontainer Go, Anda mengaktifkan HTTPS dengan [file konfigurasi](ebextensions.md) dan file konfigurasi nginx yang mengonfigurasi server nginx untuk menggunakan HTTPS.

Tambahkan snippet berikut ke file konfigurasi Anda, menggantikan sertifikat dan placeholder kunci pribadi seperti yang diperintahkan, dan simpan snippet di direktori `.ebextensions` paket sumber Anda. File konfigurasi melakukan tugas berikut:
+ Kunci `Resources` tersebut mengaktifkan port 443 pada grup keamanan yang digunakan oleh instans lingkungan Anda. 
+ Kunci `files` tersebut membuat file berikut pada instans:  
`/etc/pki/tls/certs/server.crt`  
Membuat file sertifikat pada instans. Ganti *certificate file contents* dengan isi sertifikat Anda.  
YAML bergantung pada indentasi yang konsisten. Cocokkan tingkat indentasi saat mengganti konten dalam file konfigurasi contoh dan pastikan bahwa editor teks Anda menggunakan spasi, bukan karakter tab, untuk indentasi.
Jika Anda memiliki sertifikat menengah, sertakan sertifikat tersebut di `server.crt` setelah sertifikat situs Anda.  

  ```
        -----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`  
Membuat file kunci pribadi pada instans. Ganti *private key contents* dengan isi kunci pribadi yang digunakan untuk membuat permintaan sertifikat atau sertifikat yang ditandatangani sendiri. 

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

**catatan**  
Hindari melakukan file konfigurasi yang berisi kunci pribadi Anda ke kontrol sumber. Setelah Anda menguji konfigurasi dan mengonfirmasi bahwa konfigurasi berfungsi, simpan kunci pribadi Anda di Amazon S3 dan ubah konfigurasi untuk mengunduhnya selama deployment. Untuk instruksi, lihat [Menyimpan kunci pribadi dengan aman di Amazon S3](https-storingprivatekeys.md).

Tempatkan hal berikut dalam sebuah file dengan ekstensi `.conf` di `.ebextensions/nginx/conf.d/` direktori paket sumber Anda (misalnya, `.ebextensions/nginx/conf.d/https.conf`). Ganti *app\$1port* dengan nomor port yang didengarkan aplikasi Anda. Contoh ini mengonfigurasi server nginx untuk mendengarkan pada port 443 menggunakan SSL. Untuk informasi selengkapnya tentang file konfigurasi ini pada platform Go, lihat [Mengonfigurasi server proksi](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;
    }
}
```

Pada lingkungan instans tunggal, Anda juga harus mengubah grup keamanan instans untuk mengizinkan lalu lintas pada port 443. File konfigurasi berikut mengambil ID grup keamanan menggunakan CloudFormation [fungsi](ebextensions-functions.md) dan menambahkan aturan ke dalamnya.

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

Untuk lingkungan yang seimbang beban, Anda mengonfigurasi penyeimbang beban untuk [meneruskan lalu lintas aman melalui yang tidak tersentuh](https-tcp-passthrough.md), atau [mendekripsi](configuring-https-endtoend.md) dan mengenkripsi ulang untuk enkripsi. end-to-end

# Mengakhiri HTTPS pada instans EC2 yang menjalankan Java SE
<a name="https-singleinstance-java"></a>

Untuk jenis kontainer Java SE, Anda mengaktifkan HTTPS dengan [file konfigurasi](ebextensions.md) .ebextensions, dan file konfigurasi nginx yang mengonfigurasi server nginx untuk menggunakan HTTPS.

Semua AL2023/AL2 platform mendukung fitur konfigurasi proxy yang seragam. Untuk informasi selengkapnya tentang mengonfigurasi server proxy pada versi platform yang menjalankan AL2023/AL2, lihat[Konfigurasi proksi terbalik](platforms-linux-extend.proxy.md). 

Tambahkan snippet berikut ke file konfigurasi Anda, menggantikan sertifikat dan placeholder kunci pribadi seperti yang diperintahkan, dan simpan snippet dalam direktori `.ebextensions`. File konfigurasi melakukan tugas berikut:
+ Kunci `files` tersebut membuat file berikut pada instans:  
`/etc/pki/tls/certs/server.crt`  
Membuat file sertifikat pada instans. Ganti *certificate file contents* dengan isi sertifikat Anda.  
YAML bergantung pada indentasi yang konsisten. Cocokkan tingkat indentasi saat mengganti konten dalam file konfigurasi contoh dan pastikan bahwa editor teks Anda menggunakan spasi, bukan karakter tab, untuk indentasi.
Jika Anda memiliki sertifikat menengah, sertakan sertifikat tersebut di `server.crt` setelah sertifikat situs Anda.  

  ```
        -----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`  
Membuat file kunci pribadi pada instans. Ganti *private key contents* dengan isi kunci pribadi yang digunakan untuk membuat permintaan sertifikat atau sertifikat yang ditandatangani sendiri. 

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

**catatan**  
Hindari melakukan file konfigurasi yang berisi kunci pribadi Anda ke kontrol sumber. Setelah Anda menguji konfigurasi dan mengonfirmasi bahwa konfigurasi berfungsi, simpan kunci pribadi Anda di Amazon S3 dan ubah konfigurasi untuk mengunduhnya selama deployment. Untuk instruksi, lihat [Menyimpan kunci pribadi dengan aman di Amazon S3](https-storingprivatekeys.md).

Tempatkan hal berikut dalam sebuah file dengan ekstensi `.conf` di `.ebextensions/nginx/conf.d/` direktori paket sumber Anda (misalnya, `.ebextensions/nginx/conf.d/https.conf`). Ganti *app\$1port* dengan nomor port yang didengarkan aplikasi Anda. Contoh ini mengonfigurasi server nginx untuk mendengarkan pada port 443 menggunakan SSL. Untuk informasi selengkapnya tentang file konfigurasi ini pada platform Java SE, lihat [Mengonfigurasi server proksi](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;
    }
}
```

Pada lingkungan instans tunggal, Anda juga harus mengubah grup keamanan instans untuk mengizinkan lalu lintas pada port 443. File konfigurasi berikut mengambil ID grup keamanan menggunakan CloudFormation [fungsi](ebextensions-functions.md) dan menambahkan aturan ke dalamnya.

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

Untuk lingkungan yang seimbang beban, Anda mengonfigurasi penyeimbang beban untuk [meneruskan lalu lintas aman melalui yang tidak tersentuh](https-tcp-passthrough.md), atau [mendekripsi](configuring-https-endtoend.md) dan mengenkripsi ulang untuk enkripsi. end-to-end

# Mengakhiri HTTPS pada instans EC2 yang menjalankan Node.js
<a name="https-singleinstance-nodejs"></a>

Contoh file konfigurasi berikut [memperluas konfigurasi nginx default](nodejs-platform-proxy.md) untuk mendengarkan pada port 443 dan SSL/TLS mengakhiri koneksi dengan sertifikat publik dan kunci pribadi.

Jika Anda mengonfigurasi lingkungan Anda untuk [pelaporan kondisi yang ditingkatkan](health-enhanced.md), Anda perlu mengonfigurasi nginx untuk menghasilkan log akses. Untuk melakukannya, batalkan komentar blok baris di bawah komentar yang berbunyi `# For enhanced health...` dengan menghapus karakter utama`#`.

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

Kunci `files` tersebut membuat file berikut pada instans:

`/etc/nginx/conf.d/https.conf`  
Konfigurasikan server nginx. File ini dimuat ketika layanan nginx dimulai.

`/etc/pki/tls/certs/server.crt`  
Membuat file sertifikat pada instans. Ganti *certificate file contents* dengan isi sertifikat Anda.  
YAML bergantung pada indentasi yang konsisten. Cocokkan tingkat indentasi saat mengganti konten dalam file konfigurasi contoh dan pastikan bahwa editor teks Anda menggunakan spasi, bukan karakter tab, untuk indentasi.
Jika Anda memiliki sertifikat menengah, sertakan sertifikat tersebut di `server.crt` setelah sertifikat situs Anda.  

```
      -----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`  
Membuat file kunci pribadi pada instans. Ganti *private key contents* dengan isi kunci pribadi yang digunakan untuk membuat permintaan sertifikat atau sertifikat yang ditandatangani sendiri. 

**catatan**  
Hindari melakukan file konfigurasi yang berisi kunci pribadi Anda ke kontrol sumber. Setelah Anda menguji konfigurasi dan mengonfirmasi bahwa konfigurasi berfungsi, simpan kunci pribadi Anda di Amazon S3 dan ubah konfigurasi untuk mengunduhnya selama deployment. Untuk instruksi, lihat [Menyimpan kunci pribadi dengan aman di Amazon S3](https-storingprivatekeys.md).

Pada lingkungan instans tunggal, Anda juga harus mengubah grup keamanan instans untuk mengizinkan lalu lintas pada port 443. File konfigurasi berikut mengambil ID grup keamanan menggunakan CloudFormation [fungsi](ebextensions-functions.md) dan menambahkan aturan ke dalamnya.

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

Untuk lingkungan yang seimbang beban, Anda mengonfigurasi penyeimbang beban untuk [meneruskan lalu lintas aman melalui yang tidak tersentuh](https-tcp-passthrough.md), atau [mendekripsi](configuring-https-endtoend.md) dan mengenkripsi ulang untuk enkripsi. end-to-end

# Mengakhiri HTTPS pada EC2 instance yang menjalankan PHP
<a name="https-singleinstance-php"></a>

Untuk jenis kontainer PHP, Anda menggunakan [file konfigurasi](ebextensions.md) untuk mengaktifkan Apache HTTP Server untuk menggunakan HTTPS.

Tambahkan snippet berikut ke file konfigurasi Anda, menggantikan sertifikat dan materi kunci pribadi seperti yang diinstruksikan, dan simpan snippet di direktori `.ebextensions` paket sumber Anda.

File konfigurasi melakukan tugas berikut:
+ Kunci `packages` tersebut menggunakan yum untuk memasang `mod24_ssl`.
+ Kunci `files` tersebut membuat file berikut pada instans:  
`/etc/httpd/conf.d/ssl.conf`  
Mengonfigurasi server Apache. File ini memuat ketika layanan Apache dimulai.  
`/etc/pki/tls/certs/server.crt`  
Membuat file sertifikat pada instans. Ganti *certificate file contents* dengan isi sertifikat Anda.  
YAML bergantung pada indentasi yang konsisten. Cocokkan tingkat indentasi saat mengganti konten dalam file konfigurasi contoh dan pastikan bahwa editor teks Anda menggunakan spasi, bukan karakter tab, untuk indentasi.
Jika Anda memiliki sertifikat menengah, sertakan sertifikat tersebut di `server.crt` setelah sertifikat situs Anda.  

  ```
        -----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`  
Membuat file kunci pribadi pada instans. Ganti *private key contents* dengan isi kunci pribadi yang digunakan untuk membuat permintaan sertifikat atau sertifikat yang ditandatangani sendiri.

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

**catatan**  
Hindari melakukan file konfigurasi yang berisi kunci pribadi Anda ke kontrol sumber. Setelah Anda menguji konfigurasi dan mengonfirmasi bahwa konfigurasi berfungsi, simpan kunci pribadi Anda di Amazon S3 dan ubah konfigurasi untuk mengunduhnya selama deployment. Untuk instruksi, lihat [Menyimpan kunci pribadi dengan aman di Amazon S3](https-storingprivatekeys.md).

Pada lingkungan instans tunggal, Anda juga harus mengubah grup keamanan instans untuk mengizinkan lalu lintas pada port 443. File konfigurasi berikut mengambil ID grup keamanan menggunakan CloudFormation [fungsi](ebextensions-functions.md) dan menambahkan aturan ke dalamnya.

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

Untuk lingkungan yang seimbang beban, Anda mengonfigurasi penyeimbang beban untuk [meneruskan lalu lintas aman melalui yang tidak tersentuh](https-tcp-passthrough.md), atau [mendekripsi](configuring-https-endtoend.md) dan mengenkripsi ulang untuk enkripsi. end-to-end

# Mengakhiri HTTPS pada instans EC2 yang menjalankan Python
<a name="https-singleinstance-python"></a>

Untuk jenis kontainer Python yang menggunakan Apache HTTP Server dengan Web Server Gateway Interface (WSGI), Anda menggunakan [file konfigurasi](ebextensions.md) untuk mengaktifkan Apache HTTP Server untuk menggunakan HTTPS.

Tambahkan snippet berikut ke [file konfigurasi](ebextensions.md) Anda, menggantikan sertifikat dan materi kunci pribadi seperti yang diinstruksikan, dan simpan snippet di direktori `.ebextensions` paket sumber Anda. File konfigurasi melakukan tugas berikut:
+ Kunci `packages` tersebut menggunakan yum untuk memasang `mod_ssl`.
+ Kunci `files` tersebut membuat file berikut pada instans:  
`/etc/httpd/conf.d/ssl.conf`  
Mengonfigurasi server Apache. Jika aplikasi Anda tidak bernama `application.py`, ganti teks yang disorot dalam nilai `WSGIScriptAlias` dengan jalur lokal untuk aplikasi Anda. Sebagai contoh, aplikasi django mungkin berada di `django/wsgi.py`. Lokasi harus sesuai dengan nilai opsi `WSGIPath` yang Anda tetapkan untuk lingkungan Anda.  
Tergantung pada persyaratan aplikasi Anda, Anda mungkin juga perlu menambahkan direktori lain ke parameter **python-path**.   
`/etc/pki/tls/certs/server.crt`  
Membuat file sertifikat pada instans. Ganti *certificate file contents* dengan isi sertifikat Anda.  
YAML bergantung pada indentasi yang konsisten. Cocokkan tingkat indentasi saat mengganti konten dalam file konfigurasi contoh dan pastikan bahwa editor teks Anda menggunakan spasi, bukan karakter tab, untuk indentasi.
Jika Anda memiliki sertifikat menengah, sertakan sertifikat tersebut di `server.crt` setelah sertifikat situs Anda.  

  ```
        -----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`  
Membuat file kunci pribadi pada instans. Ganti *private key contents* dengan isi kunci pribadi yang digunakan untuk membuat permintaan sertifikat atau sertifikat yang ditandatangani sendiri. 
+ Kunci `container_commands` tersebut menghentikan layanan httpd setelah semuanya telah dikonfigurasi sehingga layanan menggunakan file `https.conf` dan sertifikat baru.

**catatan**  
Contoh tersebut bekerja hanya di lingkungan yang menggunakan platform [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"
```

**catatan**  
Hindari melakukan file konfigurasi yang berisi kunci pribadi Anda ke kontrol sumber. Setelah Anda menguji konfigurasi dan mengonfirmasi bahwa konfigurasi berfungsi, simpan kunci pribadi Anda di Amazon S3 dan ubah konfigurasi untuk mengunduhnya selama deployment. Untuk petunjuk, lihat [Menyimpan kunci pribadi dengan aman di Amazon S3](https-storingprivatekeys.md).

**Catatan untuk lingkungan Amazon Linux 2023**  
Di Amazon Linux 2023, `mod_wsgi` harus diinstal secara terpisah karena tidak tersedia di repositori paket. Untuk petunjuk penginstalan, lihat [mod\$1wsgi](https://pypi.org/project/mod-wsgi/) di PyPI.

Pada lingkungan instans tunggal, Anda juga harus mengubah grup keamanan instans untuk mengizinkan lalu lintas pada port 443. File konfigurasi berikut mengambil ID grup keamanan menggunakan CloudFormation [fungsi](ebextensions-functions.md) dan menambahkan aturan ke dalamnya.

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

Untuk lingkungan yang seimbang beban, Anda mengonfigurasi penyeimbang beban untuk [meneruskan lalu lintas aman melalui yang tidak tersentuh](https-tcp-passthrough.md), atau [mendekripsi](configuring-https-endtoend.md) dan mengenkripsi ulang untuk enkripsi. end-to-end

# Mengakhiri HTTPS pada instans EC2 yang menjalankan Ruby
<a name="https-singleinstance-ruby"></a>

Untuk jenis kontainer Ruby, cara Anda mengaktifkan HTTPS tergantung pada jenis server aplikasi yang digunakan.

**Topics**
+ [Konfigurasikan HTTPS untuk Ruby dengan Puma](#Puma)
+ [Konfigurasikan HTTPS untuk Ruby dengan Passenger](#Passenger)

## Konfigurasikan HTTPS untuk Ruby dengan Puma
<a name="Puma"></a>

Untuk jenis kontainer Ruby yang menggunakan Puma sebagai server aplikasi, Anda menggunakan [file konfigurasi](ebextensions.md) untuk mengaktifkan HTTPS.

Tambahkan snippet berikut ke file konfigurasi Anda, menggantikan sertifikat dan materi kunci pribadi seperti yang diinstruksikan, dan simpan snippet di direktori `.ebextensions` paket sumber Anda. File konfigurasi melakukan tugas berikut:
+ Kunci `files` tersebut membuat file berikut pada instans:  
`/etc/nginx/conf.d/https.conf`  
Konfigurasikan server nginx. File ini dimuat ketika layanan nginx dimulai.  
`/etc/pki/tls/certs/server.crt`  
Membuat file sertifikat pada instans. Ganti *certificate file contents* dengan isi sertifikat Anda.  
YAML bergantung pada indentasi yang konsisten. Cocokkan tingkat indentasi saat mengganti konten dalam file konfigurasi contoh dan pastikan bahwa editor teks Anda menggunakan spasi, bukan karakter tab, untuk indentasi.
Jika Anda memiliki sertifikat menengah, sertakan sertifikat tersebut di `server.crt` setelah sertifikat situs Anda.  

  ```
        -----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`  
Membuat file kunci pribadi pada instans. Ganti *private key contents* dengan isi kunci pribadi yang digunakan untuk membuat permintaan sertifikat atau sertifikat yang ditandatangani sendiri. 

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

**catatan**  
Hindari melakukan file konfigurasi yang berisi kunci pribadi Anda ke kontrol sumber. Setelah Anda menguji konfigurasi dan mengonfirmasi bahwa konfigurasi berfungsi, simpan kunci pribadi Anda di Amazon S3 dan ubah konfigurasi untuk mengunduhnya selama deployment. Untuk instruksi, lihat [Menyimpan kunci pribadi dengan aman di Amazon S3](https-storingprivatekeys.md).

Pada lingkungan instans tunggal, Anda juga harus mengubah grup keamanan instans untuk mengizinkan lalu lintas pada port 443. File konfigurasi berikut mengambil ID grup keamanan menggunakan CloudFormation [fungsi](ebextensions-functions.md) dan menambahkan aturan ke dalamnya.

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

Untuk lingkungan yang seimbang beban, Anda mengonfigurasi penyeimbang beban untuk [meneruskan lalu lintas aman melalui yang tidak tersentuh](https-tcp-passthrough.md), atau [mendekripsi](configuring-https-endtoend.md) dan mengenkripsi ulang untuk enkripsi. end-to-end

## Konfigurasikan HTTPS untuk Ruby dengan Passenger
<a name="Passenger"></a>

Untuk jenis kontainer Ruby yang menggunakan Passenger sebagai server aplikasi, Anda menggunakan file konfigurasi dan file JSON untuk mengaktifkan HTTPS.

**Untuk mengonfigurasi HTTPS untuk Ruby dengan Passenger**

1. Tambahkan snippet berikut ke file konfigurasi Anda, menggantikan sertifikat dan materi kunci pribadi seperti yang diinstruksikan, dan simpan snippet di direktori `.ebextensions` paket sumber Anda. File konfigurasi melakukan tugas berikut:
   + Kunci `files` tersebut membuat file berikut pada instans:  
`/etc/pki/tls/certs/server.crt`  
Membuat file sertifikat pada instans. Ganti *certificate file contents* dengan isi sertifikat Anda.  
YAML bergantung pada indentasi yang konsisten. Cocokkan tingkat indentasi saat mengganti konten dalam file konfigurasi contoh dan pastikan bahwa editor teks Anda menggunakan spasi, bukan karakter tab, untuk indentasi.
Jika Anda memiliki sertifikat menengah, sertakan sertifikat tersebut di `server.crt` setelah sertifikat situs Anda.  

     ```
           -----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`  
Membuat file kunci pribadi pada instans. Ganti *private key contents* dengan isi kunci pribadi yang digunakan untuk membuat permintaan sertifikat atau sertifikat yang ditandatangani sendiri.   
**Example Snippet .ebextensions yang mengonfigurasi HTTPS untuk Ruby dengan 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-----
   ```
**catatan**  
Hindari melakukan file konfigurasi yang berisi kunci pribadi Anda ke kontrol sumber. Setelah Anda menguji konfigurasi dan mengonfirmasi bahwa konfigurasi berfungsi, simpan kunci pribadi Anda di Amazon S3 dan ubah konfigurasi untuk mengunduhnya selama deployment. Untuk instruksi, lihat [Menyimpan kunci pribadi dengan aman di Amazon S3](https-storingprivatekeys.md).

1. Buat file teks dan tambahkan JSON berikut ke file tersebut. Simpan file dalam direktori akar paket sumber Anda dengan nama `passenger-standalone.json`. File JSON ini mengonfigurasi Passenger untuk menggunakan HTTPS.
**penting**  
File JSON ini tidak boleh berisi tanda urutan byte (BOM). Jika JSON berisi tanda urutan byte, perpustakaan Passenger JSON tidak akan membaca file dengan benar dan layanan Passenger tidak akan dimulai.  
**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"
   }
   ```

Pada lingkungan instans tunggal, Anda juga harus mengubah grup keamanan instans untuk mengizinkan lalu lintas pada port 443. File konfigurasi berikut mengambil ID grup keamanan menggunakan CloudFormation [fungsi](ebextensions-functions.md) dan menambahkan aturan ke dalamnya.

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

Untuk lingkungan yang seimbang beban, Anda mengonfigurasi penyeimbang beban untuk [meneruskan lalu lintas aman melalui yang tidak tersentuh](https-tcp-passthrough.md), atau [mendekripsi](configuring-https-endtoend.md) dan mengenkripsi ulang untuk enkripsi. end-to-end

# Mengakhiri HTTPS pada instans EC2 yang menjalankan Tomcat
<a name="https-singleinstance-tomcat"></a>

Untuk jenis kontainer Tomcat, Anda menggunakan [file konfigurasi](ebextensions.md) untuk mengaktifkan Apache HTTP Server agar menggunakan HTTPS ketika bertindak sebagai proksi terbalik untuk Tomcat.

Tambahkan snippet berikut ke file konfigurasi Anda, menggantikan sertifikat dan materi kunci pribadi seperti yang diinstruksikan, dan simpan snippet di direktori `.ebextensions` paket sumber Anda. File konfigurasi melakukan tugas berikut:
+ Kunci `files` tersebut membuat file berikut pada instans:  
`/etc/pki/tls/certs/server.crt`  
Membuat file sertifikat pada instans. Ganti *certificate file contents* dengan isi sertifikat Anda.  
YAML bergantung pada indentasi yang konsisten. Cocokkan tingkat indentasi saat mengganti konten dalam file konfigurasi contoh dan pastikan bahwa editor teks Anda menggunakan spasi, bukan karakter tab, untuk indentasi.  
`/etc/pki/tls/certs/server.key`  
Membuat file kunci pribadi pada instans. Ganti *private key contents* dengan isi kunci pribadi yang digunakan untuk membuat permintaan sertifikat atau sertifikat yang ditandatangani sendiri.   
`/opt/elasticbeanstalk/hooks/appdeploy/post/99_start_httpd.sh`  
Membuat skrip kait pasca-deployment untuk memulai kembali layanan 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
```

Anda juga harus mengonfigurasi server proksi lingkungan Anda untuk mendengarkan port 443. Konfigurasi Apache 2.4 berikut menambahkan pendengar pada port 443. Untuk mempelajari informasi lebih lanjut, lihat [Mengonfigurasi server proksi](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>
```

Vendor sertifikat Anda mungkin menyertakan sertifikat perantara yang dapat Anda instal untuk kompatibilitas yang lebih baik dengan klien seluler. Konfigurasikan Apache dengan paket otoritas sertifikat menengah (CA) dengan menambahkan hal berikut ke file konfigurasi SSL Anda (lihat [Memperluas dan mengganti konfigurasi Apache default - Amazon Linux AMI () AL1](java-tomcat-proxy.md#java-tomcat-proxy-apache) untuk lokasi):
+ Pada konten file `ssl.conf`, tentukan file rantai:

  ```
  SSLCertificateKeyFile "/etc/pki/tls/certs/server.key"
  SSLCertificateChainFile "/etc/pki/tls/certs/gd_bundle.crt"
  SSLCipherSuite        EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
  ```
+ Tambahkan entri baru ke kunci `files` dengan konten sertifikat menengah:

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

**catatan**  
Hindari melakukan file konfigurasi yang berisi kunci pribadi Anda ke kontrol sumber. Setelah Anda menguji konfigurasi dan mengonfirmasi bahwa konfigurasi berfungsi, simpan kunci pribadi Anda di Amazon S3 dan ubah konfigurasi untuk mengunduhnya selama deployment. Untuk instruksi, lihat [Menyimpan kunci pribadi dengan aman di Amazon S3](https-storingprivatekeys.md).

Pada lingkungan instans tunggal, Anda juga harus mengubah grup keamanan instans untuk mengizinkan lalu lintas pada port 443. File konfigurasi berikut mengambil ID grup keamanan menggunakan CloudFormation [fungsi](ebextensions-functions.md) dan menambahkan aturan ke dalamnya.

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

Untuk lingkungan yang seimbang beban, Anda mengonfigurasi penyeimbang beban untuk [meneruskan lalu lintas aman melalui yang tidak tersentuh](https-tcp-passthrough.md), atau [mendekripsi](configuring-https-endtoend.md) dan mengenkripsi ulang untuk enkripsi. end-to-end

# Mengakhiri HTTPS pada instans Amazon EC2 yang menjalankan .NET Core di Linux
<a name="https-singleinstance-dotnet-linux"></a>

Untuk jenis kontainer .NET Core pada Linux, Anda mengaktifkan HTTPS dengan [file konfigurasi](ebextensions.md) `.ebextensions`, dan file konfigurasi nginx yang mengonfigurasi server nginx untuk menggunakan HTTPS.

Tambahkan snippet berikut ke file konfigurasi Anda, menggantikan sertifikat dan placeholder kunci pribadi seperti yang diperintahkan, dan simpan snippet dalam direktori `.ebextensions`. File konfigurasi melakukan tugas berikut:
+ Kunci `files` tersebut membuat file berikut pada instans:  
`/etc/pki/tls/certs/server.crt`  
Membuat file sertifikat pada instans. Ganti *certificate file contents* dengan isi sertifikat Anda.  
YAML bergantung pada indentasi yang konsisten. Cocokkan tingkat indentasi saat mengganti konten dalam file konfigurasi contoh dan pastikan bahwa editor teks Anda menggunakan spasi, bukan karakter tab, untuk indentasi.
Jika Anda memiliki sertifikat menengah, sertakan sertifikat tersebut di `server.crt` setelah sertifikat situs Anda.  

  ```
        -----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`  
Membuat file kunci pribadi pada instans. Ganti *private key contents* dengan isi kunci pribadi yang digunakan untuk membuat permintaan sertifikat atau sertifikat yang ditandatangani sendiri. 

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

**catatan**  
Hindari melakukan file konfigurasi yang berisi kunci pribadi Anda ke kontrol sumber. Setelah Anda menguji konfigurasi dan mengonfirmasi bahwa konfigurasi berfungsi, simpan kunci pribadi Anda di Amazon S3 dan ubah konfigurasi untuk mengunduhnya selama deployment. Untuk instruksi, lihat [Menyimpan kunci pribadi dengan aman di Amazon S3](https-storingprivatekeys.md).

Tempatkan hal berikut dalam sebuah file dengan ekstensi `.conf` di `.platform/nginx/conf.d/` direktori paket sumber Anda (misalnya, `.platform/nginx/conf.d/https.conf`). Ganti *app\$1port* dengan nomor port yang didengarkan aplikasi Anda. Contoh ini mengonfigurasi server nginx untuk mendengarkan pada port 443 menggunakan SSL. Untuk informasi selengkapnya tentang file konfigurasi ini pada .NET Core di platform Linux, lihat [Mengonfigurasi server proksi](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;
    }
}
```

Pada lingkungan instans tunggal, Anda juga harus mengubah grup keamanan instans untuk mengizinkan lalu lintas pada port 443. File konfigurasi berikut mengambil ID grup keamanan menggunakan CloudFormation [fungsi](ebextensions-functions.md) dan menambahkan aturan ke dalamnya.

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

Untuk lingkungan yang seimbang beban, Anda mengonfigurasi penyeimbang beban untuk [meneruskan lalu lintas aman melalui yang tidak tersentuh](https-tcp-passthrough.md), atau [mendekripsi](configuring-https-endtoend.md) dan mengenkripsi ulang untuk enkripsi. end-to-end

# Mengakhiri HTTPS di EC2 instans Amazon yang menjalankan .NET
<a name="SSLNET.SingleInstance"></a>

[File konfigurasi](ebextensions.md) berikut membuat dan menjalankan PowerShell skrip Windows yang melakukan tugas-tugas berikut:
+ Memeriksa sertifikat HTTPS yang ada yang mengikat ke port 443.
+ Mendapat [sertifikat PFX](configuring-https-ssl.md) dari bucket Amazon S3.
**catatan**  
Tambahkan `AmazonS3ReadOnlyAccess` kebijakan `aws-elasticbeanstalk-ec2-role` untuk mengakses sertifikat SSL di bucket Amazon S3.
+ Mendapat kata sandi dari AWS Secrets Manager.
**catatan**  
Tambahkan pernyataan `aws-elasticbeanstalk-ec2-role` yang memungkinkan `secretsmanager:GetSecretValue` tindakan untuk rahasia yang berisi kata sandi sertifikat
+ Menginstal sertifikat.
+ Mengikat sertifikat ke port 443.
**catatan**  
Untuk menghapus titik akhir HTTP (port 80), masukkan perintah `Remove-WebBinding` di bawah bagian **Hapus pengikatan HTTP** pada contoh.

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

Pada lingkungan instans tunggal, Anda juga harus mengubah grup keamanan instans untuk mengizinkan lalu lintas pada port 443. File konfigurasi berikut mengambil ID grup keamanan menggunakan CloudFormation [fungsi](ebextensions-functions.md) dan menambahkan aturan ke dalamnya.

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

Untuk lingkungan yang seimbang beban, Anda mengonfigurasi penyeimbang beban untuk [meneruskan lalu lintas aman melalui yang tidak tersentuh](https-tcp-passthrough.md), atau [mendekripsi](configuring-https-endtoend.md) dan mengenkripsi ulang untuk enkripsi. end-to-end