

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

# Sertifikat server
<a name="configuring-https.certificate"></a>

Topik ini menjelaskan berbagai jenis sertifikat yang dapat Anda gunakan untuk mengonfigurasi HTTPS dan kapan harus menerapkannya. Subtopik di bagian ini memberikan instruksi untuk membuat sertifikat Anda sendiri dan cara mengunggahnya.

**AWS Certificate Manager (ACM)**  
ACM adalah alat pilihan untuk menyediakan, mengelola, dan menerapkan sertifikat server Anda. Anda dapat melakukannya secara terprogram atau menggunakan. AWS CLI Dengan ACM Anda dapat membuat sertifikat tepercaya untuk nama domain Anda secara gratis.

 Sertifikat ACM hanya dapat digunakan dengan penyeimbang AWS beban dan CloudFront distribusi Amazon, dan ACM hanya tersedia di Wilayah tertentu. AWS Untuk menggunakan sertifikat ACM dengan Elastic Beanstalk, lihat [Mengkonfigurasi Penghentian HTTPS di penyeimbang beban](configuring-https-elb.md). Untuk informasi selengkapnya tentang ACM, lihat [https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html). 

**catatan**  
 Untuk daftar wilayah di mana ACM tersedia, lihat [titik akhir ACM dan kuota](https://docs.aws.amazon.com/general/latest/gr/acm.html) di. *Referensi Umum Amazon Web Services* 

Jika ACM tidak tersedia di AWS Wilayah Anda, Anda dapat mengunggah sertifikat pihak ketiga atau yang ditandatangani sendiri dan kunci pribadi ke AWS Identity and Access Management (IAM). Anda dapat menggunakan AWS CLI untuk mengunggah sertifikat. Sertifikat yang disimpan dalam IAM dapat digunakan dengan penyeimbang beban dan distribusi. CloudFront Untuk informasi selengkapnya, lihat [Unggah sertifikat ke IAM](configuring-https-ssl-upload.md).

**Sertifikat pihak ketiga**  
Jika ACM tidak tersedia di wilayah Anda, Anda dapat membeli sertifikat terpercaya dari pihak ketiga. Sertifikat pihak ketiga dapat digunakan untuk mendekripsi lalu lintas HTTPS di penyeimbang beban, pada instans backend, atau keduanya.

**Sertifikat yang ditandatangani sendiri**  
Untuk pengembangan dan pengujian, Anda dapat [membuat dan menandatangani sertifikat](configuring-https-ssl.md) sendiri dengan alat sumber terbuka. Sertifikat yang ditandatangani sendiri gratis dan mudah dibuat, namun tidak dapat digunakan untuk dekripsi front-end di situs publik. Jika Anda mencoba untuk menggunakan sertifikat yang ditandatangani sendiri untuk koneksi HTTPS ke klien, peramban pengguna menampilkan pesan galat yang menunjukkan bahwa situs web Anda tidak aman. Namun, Anda dapat, menggunakan sertifikat yang ditandatangani sendiri untuk mengamankan koneksi backend tanpa masalah.

# Buat dan tandatangani sertifikat X509
<a name="configuring-https-ssl"></a>

Anda dapat membuat sertifikat X509 untuk aplikasi Anda dengan `OpenSSL`. OpenSSL adalah perpustakaan sumber terbuka standar yang mendukung berbagai fungsi kriptografi, termasuk pembuatan dan penandatanganan sertifikat x509. Untuk informasi selengkapnya tentang OpenSSL, kunjungi [www.openssl.org](https://www.openssl.org/).

**catatan**  
Anda hanya perlu membuat sertifikat secara lokal jika Anda ingin [menggunakan HTTPS dalam lingkungan instans tunggal](https-singleinstance.md) atau [mengenkripsi ulang pada backend](configuring-https-endtoend.md) dengan sertifikat yang ditandatangani sendiri. Jika Anda memiliki nama domain, Anda dapat membuat sertifikat AWS dan menggunakannya dengan lingkungan load-balanced secara gratis dengan menggunakan AWS Certificate Manager (ACM). Lihat [Meminta Sertifikat](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request.html) di *Panduan Pengguna AWS Certificate Manager * untuk petunjuk.

Jalankan `openssl version` pada baris perintah untuk melihat apakah Anda sudah memasang OpenSSL. Jika tidak, Anda dapat membangun dan menginstal kode sumber menggunakan instruksi di [ GitHub repositori publik](https://github.com/openssl/openssl), atau menggunakan manajer paket favorit Anda. [OpenSSL juga diinstal pada gambar Linux Elastic Beanstalk, jadi alternatif cepat adalah terhubung ke EC2 instance di lingkungan berjalan dengan menggunakan perintah EB CLI:](eb-cli3.md) **eb ssh**

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

Anda perlu membuat kunci pribadi RSA untuk membuat permintaan penandatanganan sertifikat (CSR). Untuk membuat kunci pribadi Anda, gunakan perintah **openssl genrsa**:

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

*privatekey.pem*  
Nama file tempat Anda ingin menyimpan kunci pribadi. Biasanya, perintah **openssl genrsa** mencetak konten kunci pribadi ke layar, tetapi perintah ini menyalurkan output ke file. Pilih nama file apa pun, dan simpan file di tempat yang aman sehingga Anda dapat mengambilnya nanti. Jika Anda kehilangan kunci pribadi, Anda tidak akan dapat menggunakan sertifikat Anda.

CSR adalah file yang Anda kirim ke otoritas sertifikat (CA) untuk mengajukan sertifikat server digital. Untuk membuat CSR, gunakan perintah **openssl req**:

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

Masukkan informasi yang diminta dan tekan **Masukkan**. Tabel berikut menjelaskan dan menunjukkan contoh untuk setiap bidang.


****  

| Nama | Deskripsi | Contoh | 
| --- | --- | --- | 
| Nama Negara | Singkatan ISO dua huruf untuk negara Anda. | AS = Amerika Serikat | 
| Negara Bagian atau Provinsi | Nama negara bagian atau provinsi tempat organisasi Anda berada. Anda tidak dapat menyingkat nama ini. | Washington | 
| Nama Lokal | Nama kota tempat organisasi Anda berada. | Seattle | 
| Nama Organisasi | Nama lengkap legal organisasi Anda. Jangan menyingkat nama organisasi Anda. | Contoh Perusahaan | 
| Unit Organisasi | Opsional, untuk informasi organisasi tambahan. | Pemasaran | 
| Nama Umum | Nama domain yang memenuhi syarat untuk situs web Anda. Ini harus sesuai dengan nama domain yang pengguna lihat ketika mereka mengunjungi situs Anda, jika tidak, kesalahan sertifikat akan ditampilkan. | www.example.com | 
| Alamat email | Alamat email administrator situs. | someone@example.com | 

Anda dapat mengirimkan permintaan penandatanganan ke pihak ketiga untuk ditandatangani, atau menandatanganinya sendiri untuk pengembangan dan pengujian. Sertifikat yang ditandatangani sendiri juga dapat digunakan untuk HTTPS backend antara penyeimbang beban dan instance. EC2 

Untuk menandatangani sertifikat, gunakan perintah **openssl x509**. Contoh berikut menggunakan kunci pribadi dari langkah sebelumnya (*privatekey.pem*) dan permintaan penandatanganan (*csr.pem*) untuk membuat sertifikat publik bernama *public.crt* yang valid selama *365* berhari-hari.

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

Simpan kunci pribadi dan sertifikat publik untuk digunakan nanti. Anda dapat membuang permintaan penandatanganan. Selalu [simpan kunci pribadi di lokasi yang aman](https-storingprivatekeys.md) dan hindari menambahkannya ke kode sumber Anda.

Untuk menggunakan sertifikat dengan platform Windows Server, Anda harus mengubahnya ke format PFX. Gunakan perintah berikut untuk membuat sertifikat PFX dari file sertifikat pribadi dan publik:

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

Setelah Anda memiliki sertifikat, Anda dapat [mengunggahnya ke IAM](configuring-https-ssl-upload.md) untuk digunakan dengan penyeimbang beban, atau [mengonfigurasi instans di lingkungan Anda untuk mengakhiri HTTPS](https-singleinstance.md).

# Unggah sertifikat ke IAM
<a name="configuring-https-ssl-upload"></a>

Untuk menggunakan sertifikat Anda dengan penyeimbang beban lingkungan Elastic Beanstalk Anda, unggah sertifikat dan kunci pribadi ke (IAM). AWS Identity and Access Management Anda dapat menggunakan sertifikat yang disimpan di IAM dengan penyeimbang beban Elastic Load Balancing dan distribusi Amazon. CloudFront 

**catatan**  
AWS Certificate Manager (ACM) adalah alat pilihan untuk menyediakan, mengelola, dan menyebarkan sertifikat server Anda. Untuk informasi selengkapnya tentang permintaan sertifikat ACM, lihat [Meminta Sertifikat](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request.html) di *AWS Certificate Manager Panduan Pengguna*. Untuk informasi tentang mengimpor sertifikat pihak ke tiga ke ACM, lihat [Mengimpor Sertifikat](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) di *Panduan Pengguna AWS Certificate Manager *. Gunakan IAM untuk mengunggah sertifikat hanya jika ACM tidak [tersedia di Wilayah Anda AWS](https://docs.aws.amazon.com/general/latest/gr/acm.html).

Anda dapat menggunakan AWS Command Line Interface (AWS CLI) untuk mengunggah sertifikat Anda. Perintah berikut mengunggah sertifikat yang ditandatangani sendiri bernama *https-cert.crt* dengan kunci pribadi bernama: *private-key.pem*

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

`file://`Awalan memberitahu AWS CLI untuk memuat isi file dalam direktori saat ini. *elastic-beanstalk-x509*menentukan nama untuk memanggil sertifikat di IAM.

Jika Anda membeli sertifikat dari otoritas sertifikat dan menerima file rantai sertifikat, unggah juga dengan menyertakan opsi `--certificate-chain`:

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

Buat catatan dari Amazon Resource Name (ARN) untuk sertifikat Anda. Anda akan menggunakan catatan itu saat memperbarui pengaturan konfigurasi penyeimbang beban untuk menggunakan HTTPS.

**catatan**  
Sertifikat yang diunggah ke IAM akan tetap disimpan meskipun sertifikat itu tidak lagi digunakan di penyeimbang beban lingkungan mana pun. Sertifikat ini berisi data sensitif. Saat Anda tidak lagi membutuhkan sertifikat tersebut untuk lingkungan apapun, pastikan untuk menghapusnya. Untuk detail tentang menghapus sertifikat dari IAM, lihat [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html#delete-server-certificate](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html#delete-server-certificate).

Untuk informasi selengkapnya tentang sertifikat server di IAM, lihat [Bekerja dengan Sertifikat Server](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) di *Panduan Pengguna IAM*.

# Menyimpan kunci pribadi dengan aman di Amazon S3
<a name="https-storingprivatekeys"></a>

Kunci pribadi yang Anda gunakan untuk menandatangani sertifikat publik pribadi Anda bersifat pribadi dan tidak boleh diserahkan ke kode sumber. Anda dapat menghindari menyimpan kunci pribadi dalam file konfigurasi dengan mengunggahnya ke Amazon S3, dan mengonfigurasi Elastic Beanstalk untuk mengunduh file dari Amazon S3 selama deployment aplikasi.

Contoh berikut menunjukkan bagian [Sumber Daya](environment-resources.md) dan [file](customize-containers-ec2.md#linux-files) dari [file konfigurasi](ebextensions.md) mengunduh file kunci pribadi dari bucket Amazon S3.

**Example .ebextensions/privatekey.config**  

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

Ganti nama bucket dan URL dalam contoh dengan milik Anda. Entri pertama dalam file ini menambahkan metode otentikasi yang dinamai `S3Auth` ke metadata grup Auto Scaling lingkungan. Jika Anda telah mengonfigurasi [profil instans](concepts-roles-instance.md) khusus untuk lingkungan Anda, itu akan digunakan, jika tidak nilai default `aws-elasticbeanstalk-ec2-role` akan diterapkan. Profil instans default memiliki izin untuk membaca dari bucket penyimpanan Elastic Beanstalk. Jika Anda menggunakan bucket yang berbeda, [tambahkan izin ke profil instans](iam-instanceprofile.md#iam-instanceprofile-addperms).

Entri kedua menggunakan `S3Auth` metode otentikasi untuk mengunduh kunci pribadi dari URL yang ditentukan dan menyimpannya ke `/etc/pki/tls/certs/server.key`. Kemudian server proksi dapat membaca kunci pribadi dari lokasi ini untuk [mengakhiri koneksi HTTPS pada instans](https-singleinstance.md).

Profil instans yang ditetapkan ke EC2 instance lingkungan Anda harus memiliki izin untuk membaca objek kunci dari bucket yang ditentukan. [Verifikasi bahwa profil instans memiliki izin](iam-instanceprofile.md#iam-instanceprofile-verify) untuk membaca objek di IAM, dan bahwa izin pada bucket dan objek tidak melarang profil instans.

**Melihat izin bucket**

1. Buka [Konsol Manajemen Amazon S3](https://console.aws.amazon.com/s3/home).

1. Pilih bucket.

1. Pilih **Properti** lalu pilih **Izin**.

1. Verifikasi bahwa akun Anda adalah penerima pada bucket dengan izin baca.

1. Jika kebijakan bucket dilampirkan, pilih **Kebijakan bucket** untuk melihat izin yang ditetapkan ke bucket.