

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

# Amankan situs web Lightsail NGINX Anda dengan Let's Encrypt SSL/TLS
<a name="amazon-lightsail-using-lets-encrypt-certificates-with-nginx"></a>

Amazon Lightsail memudahkan untuk mengamankan situs web dan aplikasi Anda dengan SSL/TLS menggunakan penyeimbang beban Lightsail. Namun, menggunakan penyeimbang beban Lightsail mungkin umumnya bukan pilihan yang tepat. Mungkin situs Anda tidak memerlukan penyeimbang beban skalabilitas atau toleransi kesalahan, atau mungkin Anda sedang mengoptimalkan biaya.

Dalam kasus terakhir, Anda dapat mempertimbangkan untuk menggunakan Let's Encrypt untuk mendapatkan sertifikat SSL gratis. Jika demikian, itu tidak masalah. Anda dapat mengintegrasikan sertifikat tersebut dengan instance Lightsail. Tutorial ini menunjukkan Anda cara untuk meminta sertifikat wildcard Let's Encrypt dengan menggunakan Certbot, dan mengintegrasikannya dengan instans Nginx Anda.

## Identifikasi vendor cetak biru Nginx Anda
<a name="get-nginx-vendor"></a>

 Berikut adalah beberapa langkah yang harus Anda ambil untuk memulai setelah instans Nginx Anda aktif dan berjalan di Amazon Lightsail. Sebelum memulai, identifikasi vendor cetak biru Anda di halaman manajemen instans Anda: 

![\[Vendor cetak biru Nginx di halaman manajemen instance\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/headers/nginx-blueprint-vendor.png)


Pilih panduan yang sesuai untuk instans Nginx Anda:

------
#### [ Bitnami ]

**penting**  
Distribusi Linux yang digunakan oleh instance Bitnami berubah dari Ubuntu ke Debian pada Juli 2020. Karena perubahan tersebut, beberapa langkah dalam tutorial ini akan berbeda tergantung pada distribusi Linux dari instans Anda. Semua instance cetak biru Bitnami yang dibuat setelah perubahan menggunakan distribusi Linux Debian. Instans yang dibuat sebelum perubahan akan terus menggunakan distribusi Ubuntu Linux. Untuk memeriksa distribusi instans Anda, jalankan perintah `uname -a `. Respons akan menampilkan Ubuntu atau Debian sebagai distribusi Linux instans Anda.
Bitnami sedang dalam proses memodifikasi struktur file untuk banyak tumpukan mereka. Jalur file dalam tutorial ini dapat berubah tergantung pada apakah tumpukan Bitnami Anda menggunakan paket sistem Linux asli (Pendekatan A), atau jika itu adalah instalasi mandiri (Pendekatan B). Untuk mengidentifikasi jenis instalasi Bitnami Anda dan pendekatan mana yang harus diikuti, jalankan perintah berikut:  
`test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."`

**Daftar Isi**
+ [Langkah 1: Lengkapi prasyarat](#complete-the-prerequisites-lets-encrypt-nginx)
+ [Langkah 2: Instal Certbot pada instance Lightsail Anda](#install-certbot-on-your-instance-nginx)
+ [Langkah 3: Minta sertifikat wildcard Let's Encrypt SSL](#request-a-lets-encrypt-certificate-nginx)
+ [Langkah 4: Tambahkan catatan TXT ke zona DNS domain Anda](#add-a-text-record-to-your-domains-dns-zone-lets-encrypt-nginx)
+ [Langkah 5: Konfirmasikan bahwa catatan TXT telah disebarkan](#confirm-the-text-records-have-propagated-lets-encrypt-nginx)
+ [Langkah 6: Lengkapi permintaan sertifikat Let's Encrypt SSL](#complete-the-lets-encrypt-certificate-request-nginx)
+  [Langkah 7: Buat tautan ke file sertifikat Let's Encrypt di direktori server NGINX](#link-the-lets-encrypt-certificate-files-in-the-nginx-directory-nginx) 
+ [Langkah 8: Konfigurasikan pengalihan HTTP ke HTTPS untuk aplikasi web Anda](#configure-http-to-https-redirection-nginx)
+ [Langkah 9: Perbarui sertifikat Let's Encrypt setiap 90 hari](#renew-a-lets-encrypt-certificate-nginx)

## Langkah 1: Selesaikan prasyarat
<a name="complete-the-prerequisites-lets-encrypt-nginx"></a>

Selesaikan prasyarat berikut jika Anda belum melakukannya:
+ Buat instance Nginx di Lightsail. Untuk mempelajari lebih lanjut, lihat [Membuat instance](how-to-create-amazon-lightsail-instance-virtual-private-server-vps.md).
+ Daftarkan nama domain, dan dapatkan akses administratif untuk mengedit catatan DNS-nya. Untuk mempelajari lebih lanjut, lihat [DNS](understanding-dns-in-amazon-lightsail.md).
**catatan**  
Sebaiknya Anda mengelola catatan DNS domain Anda menggunakan zona DNS Lightsail. Untuk mempelajari lebih lanjut, lihat [Membuat zona DNS untuk mengelola catatan DNS domain Anda](lightsail-how-to-create-dns-entry.md).
+ Gunakan terminal SSH berbasis browser di konsol Lightsail untuk melakukan langkah-langkah dalam tutorial ini. Namun, Anda juga dapat menggunakan klien SSH Anda sendiri, seperti PuTTY. Untuk mempelajari lebih lanjut tentang mengonfigurasi PuTTY, [lihat Mengunduh dan mengatur PuTTY untuk terhubung menggunakan SSH](lightsail-how-to-set-up-putty-to-connect-using-ssh.md) di Amazon Lightsail.

Setelah Anda menyelesaikan prasyarat, lanjutkan ke [bagian berikutnya](#install-certbot-on-your-instance-nginx) dalam tutorial ini.

## Langkah 2: Instal Certbot pada instance Lightsail Anda
<a name="install-certbot-on-your-instance-nginx"></a>

Certbot adalah sebuah klien yang digunakan untuk meminta sertifikat dari Let's Encrypt dan men-deploy-nya ke web server. Let’s Encrypt menggunakan protokol ACME untuk mengeluarkan sertifikat, dan Certbot adalah klien dengan ACME-diaktifkan yang berinteraksi dengan Let's Encrypt.

**Untuk menginstal Certbot pada instance Lightsail Anda**

1. Masuk ke konsol [Lightsail](https://lightsail.aws.amazon.com/).

1. Di panel navigasi kiri, pilih ikon koneksi cepat SSH untuk contoh yang ingin Anda sambungkan.  
![\[SSH cepat terhubung di halaman rumah Lightsail.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/resource_cards/nginx-ssh-quick-connect.png)

1. Setelah sesi SSH berbasis browser Lightsail Anda terhubung, masukkan perintah berikut untuk memperbarui paket pada instance Anda:

   ```
   sudo apt-get update
   ```  
![\[Perbarui paket di instans Anda.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/lets-encrypt/bitnami-nginx-update-packages.png)

1. Masukkan perintah berikut untuk menginstal paket properti perangkat lunak. Developer Certbot menggunakan Arsip Paket Personal (PPA) untuk mendistribusikan Certbot. Paket properti perangkat lunak membuatnya lebih efisien untuk dikerjakan PPAs.

   ```
   sudo apt-get install software-properties-common
   ```
**catatan**  
Jika Anda menemukan kesalahan `Could not get lock` ketika menjalankan perintah `sudo apt-get install`, harap tunggu sekitar 15 menit dan coba lagi. Kesalahan ini mungkin disebabkan oleh tugas cron yang menggunakan alat pengelolaan paket Apt untuk menginstal peningkatan tanpa pengawasan.

1. Masukkan perintah berikut untuk menambahkan Certbot ke repositori apt lokal:
**catatan**  
Langkah 5 hanya berlaku untuk instans yang menggunakan distribusi Ubuntu Linux. Lewati langkah ini jika instans Anda menggunakan distribusi Debian Linux.

   ```
   sudo apt-add-repository ppa:certbot/certbot -y
   ```

1. Masukkan perintah berikut untuk memperbarui apt untuk memasukkan repositori yang baru:

   ```
   sudo apt-get update -y
   ```

1. Masukkan perintah berikut untuk menginstal Certbot:

   ```
   sudo apt-get install certbot -y
   ```

   Certbot sekarang diinstal pada instance Lightsail Anda.

1. Biarkan jendela terminal SSH berbasis peramban tetap terbuka - Anda harus kembali ke sana nanti dalam tutorial ini. Lanjutkan ke [bagian berikutnya](#request-a-lets-encrypt-certificate-nginx) dalam tutorial ini.

## Langkah 3: Membuat permintaan sertifikat wildcard SSL Let’s Encrypt
<a name="request-a-lets-encrypt-certificate-nginx"></a>

Mulailah proses meminta sertifikat dari Let's Encrypt. Dengan menggunakan Certbot, buat permintaan sertifikat wildcard, yang memungkinkan Anda menggunakan sertifikat tunggal untuk domain dan subdomainnya. Sebagai contoh, satu sertifikat wildcard tunggal bekerja untuk domain tingkat atas `example.com`, dan subdomain `blog.example.com`, dan `stuff.example.com`.

**Untuk membuat permintaan sertifikat wildcard SSL Let's Encrypt**

1. Pada jendela terminal SSH berbasis peramban yang sama yang digunakan di [langkah 2](#install-certbot-on-your-instance-nginx) dalam tutorial ini, masukkan perintah berikut untuk mengatur variabel lingkungan untuk domain Anda. Anda sekarang dapat menyalin dan menyisipkan perintah untuk mendapatkan sertifikat dengan lebih efisien. Pastikan untuk mengganti `domain` dengan nama domain terdaftar Anda.

   ```
   DOMAIN=domain
   ```

   ```
   WILDCARD=*.$DOMAIN
   ```

   Contoh:

   ```
   DOMAIN=example.com
   ```

   ```
   WILDCARD=*.$DOMAIN
   ```

1. Masukkan perintah berikut untuk mengonfirmasi bahwa variabel mengembalikan nilai yang benar:

   ```
   echo $DOMAIN && echo $WILDCARD
   ```

   Anda akan melihat hasil yang mirip dengan berikut ini:  
![\[Konfirmasikan variabel lingkungan domain.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/lets-encrypt/bitnami-confirm-variables.png)

1. Masukkan perintah berikut untuk memulai Certbot dalam mode interaktif. Perintah ini memberitahu Certbot untuk menggunakan metode otorisasi manual dengan tantangan DNS untuk memverifikasi kepemilikan domain. Aplikasi ini membuat permintaan sertifikat wildcard untuk domain tingkat atas Anda, serta subdomainnya.

   ```
   sudo certbot -d $DOMAIN -d $WILDCARD --manual --preferred-challenges dns certonly
   ```

1. Masukkan alamat email Anda saat diminta, karena itu akan digunakan untuk pemberitahuan pembaruan dan keamanan.

1. Baca persyaratan layanan Let’s Encrypt. Setelah selesai, tekan A jika Anda setuju. Jika Anda tidak setuju, Anda tidak dapat memperoleh sertifikat Let's Encrypt.

1. Berikan respons sesuai dengan prompt untuk berbagi alamat email Anda dan menjawab peringatan tentang alamat IP Anda yang sedang di-log.

1. Let’s Encrypt sekarang meminta Anda untuk memverifikasi bahwa Anda memiliki domain yang ditentukan. Anda melakukannya dengan menambahkan data TXT ke catatan DNS untuk domain Anda. Satu set nilai catatan TXT disediakan seperti yang ditunjukkan dalam contoh berikut:
**catatan**  
Let’s Encrypt dapat menyediakan satu atau beberapa catatan TXT yang harus Anda gunakan untuk verifikasi. Dalam contoh ini, kami diberi dua catatan TXT untuk digunakan untuk verifikasi.  
![\[Catatan TXT untuk sertifikat Let's Encrypt.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/ssh/lets-encrypt-text-records.png)

1. Biarkan sesi SSH berbasis browser Lightsail—Anda kembali ke sana nanti dalam tutorial ini. Lanjutkan ke [bagian berikutnya](#add-a-text-record-to-your-domains-dns-zone-lets-encrypt-nginx) dalam tutorial ini.

## Langkah 4: Tambahkan catatan TXT ke zona DNS domain Anda
<a name="add-a-text-record-to-your-domains-dns-zone-lets-encrypt-nginx"></a>

Menambahkan catatan TXT ke zona DNS domain Anda akan memverifikasi bahwa Anda adalah pemilik domain. Untuk tujuan demonstrasi, kami menggunakan zona DNS Lightsail. Namun, langkah-langkah tersebut mungkin serupa untuk zona DNS lain yang biasanya di-host-ing oleh registrar domain.

**catatan**  
Untuk mempelajari lebih lanjut tentang cara membuat zona DNS Lightsail untuk domain Anda, [lihat Membuat zona DNS untuk mengelola catatan DNS domain Anda di Lightsail](lightsail-how-to-create-dns-entry.md).

**Untuk menambahkan data TXT ke zona DNS domain Anda di Lightsail**

1. Di panel navigasi kiri, pilih **Domain &** DNS.

1. Pada bagian **Zona DNS** di halaman tersebut, pilih Zona DNS untuk domain yang Anda tentukan dalam permintaan sertifikat Certbot.

1. Di editor zona DNS, pilih catatan **DNS**.

1. Pilih **Tambahkan catatan**.

1. Di menu tarik-turun **jenis Rekam**, pilih catatan **TXT**.

1. Masukkan nilai yang ditentukan oleh permintaan sertifikat Let's Encrypt ke dalam **nama Rekam** dan **Menanggapi dengan bidang**.
**catatan**  
Konsol Lightsail telah mengisi sebelumnya bagian puncak domain Anda. Misalnya, jika Anda ingin menambahkan subdomain `_acme-challenge.example.com`, maka anda hanya perlu memasukkan `_acme-challenge` ke dalam kotak teks, dan Lightsail akan menambahkan bagian `.example.com` untuk Anda ketika Anda menyimpan catatan.

1. Pilih **Simpan**.

1. Ulangi langkah 4 hingga 7 untuk menambahkan set catatan TXT kedua yang ditentukan oleh permintaan sertifikat Let's Encrypt.

1. Biarkan jendela browser konsol Lightsail tetap terbuka — Anda kembali ke sana nanti dalam tutorial ini. Lanjutkan ke [bagian berikutnya](#confirm-the-text-records-have-propagated-lets-encrypt-nginx) dalam tutorial ini.

## Langkah 5: Mengonfirmasi bahwa data TXT telah disebarkan
<a name="confirm-the-text-records-have-propagated-lets-encrypt-nginx"></a>

Gunakan MxToolbox utilitas untuk mengonfirmasi bahwa catatan TXT telah disebarkan ke DNS Internet. Propagasi catatan DNS mungkin memerlukan waktu beberapa saat tergantung pada penyedia host-ing DNS Anda, dan waktu untuk tayang yang dikonfigurasi (TTL) untuk catatan DNS Anda. Penting bagi Anda untuk menyelesaikan langkah ini, dan pastikan bahwa catatan TXT Anda telah disebarkan, sebelum melanjutkan permintaan sertifikat Certbot Anda. Jika tidak, permintaan sertifikat Anda akan gagal.

**Untuk mengkonfirmasi catatan TXT telah disebarkan ke DNS Internet**

1. Buka jendela browser baru dan pergi ke [https://mxtoolbox.com/TXTLookup.aspx.](https://mxtoolbox.com/TXTLookup.aspx)

1. Masukkan teks berikut ke dalam kotak teks. Pastikan untuk mengganti `domain` dengan domain Anda.

   ```
   _acme-challenge.domain
   ```

   Contoh:

   ```
   _acme-challenge.example.com
   ```  
![\[MxToolbox Pencarian catatan TXT.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/lets-encrypt/mxtoolbox-text-record-lookup.png)

1. Pilih **Pencarian TXT** untuk menjalankan pemeriksaan.

1. Salah satu respons berikut terjadi:
   + Jika catatan TXT Anda telah disebarkan ke DNS Internet, Anda melihat respons yang mirip dengan yang ditunjukkan pada tangkapan layar berikut. Tutup jendela peramban dan lanjutkan ke [bagian berikutnya](#complete-the-lets-encrypt-certificate-request-nginx) dalam tutorial ini.  
![\[Konfirmasi bahwa catatan TXT telah disebarkan.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/lets-encrypt/mxtoolbox-propagated-text-record-lookup.png)
   + Jika catatan TXT Anda belum disebarkan ke DNS Internet, Anda melihat respons DNS Record not **found**. Konfirmasikan bahwa Anda telah menambahkan catatan DNS yang benar ke zona DNS domain Anda. Jika Anda telah menambahkan catatan yang benar, tunggu beberapa saat lebih lama untuk membiarkan catatan DNS domain Anda menyebar, dan jalankan pencarian TXT lagi.

## Langkah 6: Menyelesaikan permintaan sertifikat SSL Let's Encrypt
<a name="complete-the-lets-encrypt-certificate-request-nginx"></a>

Kembali ke sesi SSH berbasis browser Lightsail untuk instance Nginx Anda dan selesaikan permintaan sertifikat Let's Encrypt. Certbot menyimpan sertifikat SSL, rantai, dan file kunci Anda ke direktori tertentu pada instans Nginx Anda.

**Untuk menyelesaikan permintaan sertifikat SSL Let's Encrypt**

1. Dalam sesi SSH berbasis browser Lightsail untuk instans Nginx Anda, **tekan Enter** untuk melanjutkan permintaan sertifikat SSL Let's Encrypt Anda. Jika berhasil, respons yang mirip dengan yang ditunjukkan pada gambar berikut akan muncul:  
![\[Permintaan sertifikat Let's Encrypt yang berhasil.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/lets-encrypt/bitnami-certificate-request-success.png)

   Pesan yang mengonfirmasi bahwa file sertifikat, rantai, dan kunci disimpan di direktori `/etc/letsencrypt/live/domain/`. Pastikan untuk mengganti `domain` dengan domain Anda, seperti `/etc/letsencrypt/live/example.com/`.

1. Catat tanggal kedaluwarsa yang ditentukan dalam pesan tersebut. Anda menggunakannya untuk memperpanjang sertifikat Anda pada tanggal tersebut.  
![\[Tanggal perpanjangan sertifikat Let’s Encrypt.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/lets-encrypt/certificate-renewal-date.png)

1. Sekarang setelah Anda memiliki sertifikat SSL Let's Encrypt, lanjutkan ke [bagian berikutnya](#link-the-lets-encrypt-certificate-files-in-the-nginx-directory-nginx) dalam tutorial ini.

## Langkah 7: Buat tautan ke file sertifikat Let's Encrypt di direktori server NGINX
<a name="link-the-lets-encrypt-certificate-files-in-the-nginx-directory-nginx"></a>

Buat tautan ke file sertifikat SSL Let's Encrypt di direktori server NGINX pada instance Nginx Anda. Selain itu, backup sertifikat yang ada, jika Anda membutuhkannya nanti.

**Untuk membuat tautan ke file sertifikat Let's Encrypt di direktori server NGINX**

1. Dalam sesi SSH berbasis browser Lightsail untuk instance Nginx Anda, masukkan perintah berikut untuk menghentikan layanan yang mendasarinya:

   ```
   sudo /opt/bitnami/ctlscript.sh stop
   ```

   Anda akan melihat respons yang mirip dengan berikut ini:  
![\[Layanan instans berhenti.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/lets-encrypt/bitnami-nginx-stop-services.png)

1. Masukkan perintah berikut untuk mengatur variabel lingkungan untuk domain Anda. Anda sekarang dapat menyalin dan menempelkan perintah untuk menautkan file sertifikat dengan lebih efisien. Pastikan untuk mengganti `domain` dengan nama domain terdaftar Anda.

   ```
   DOMAIN=domain
   ```

   Contoh:

   ```
   DOMAIN=example.com
   ```

1. Masukkan perintah berikut untuk mengonfirmasi bahwa variabel mengembalikan nilai yang benar:

   ```
   echo $DOMAIN
   ```

   Anda akan melihat hasil yang mirip dengan berikut ini:  
![\[Konfirmasikan variabel lingkungan domain.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/lets-encrypt/bitnami-confirm-domain-variable.png)

1. Masukkan perintah berikut satu per satu untuk mengganti nama file sertifikat yang ada sebagai cadangan. Lihat blok **Penting** di awal tutorial ini untuk informasi tentang distribusi dan struktur file yang berbeda.
   + Untuk distribusi Debian Linux

     Pendekatan A (instalasi Bitnami menggunakan paket sistem):

     ```
     sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old
     ```

     ```
     sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old
     ```

     Pendekatan B (Instalasi Bitnami mandiri):

     ```
     sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old
     ```

     ```
     sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old
     ```
   + Untuk instans yang lebih lama yang menggunakan distribusi Ubuntu Linux:

     ```
     sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old
     ```

     ```
     sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old
     ```

1. Masukkan perintah berikut satu per satu untuk membuat tautan ke file sertifikat Let's Encrypt Anda di direktori server NGINX. Lihat blok **Penting** di awal tutorial ini untuk informasi tentang distribusi dan struktur file yang berbeda.
   + Untuk distribusi Debian Linux

     Pendekatan A (instalasi Bitnami menggunakan paket sistem):

     ```
     sudo ln -sf /etc/letsencrypt/live/$DOMAIN/privkey.pem /opt/bitnami/nginx/conf/bitnami/certs/server.key
     ```

     ```
     sudo ln -sf /etc/letsencrypt/live/$DOMAIN/fullchain.pem /opt/bitnami/nginx/conf/bitnami/certs/server.crt
     ```

     Pendekatan B (Instalasi Bitnami mandiri):

     ```
     sudo ln -sf /etc/letsencrypt/live/$DOMAIN/privkey.pem /opt/bitnami/nginx/conf/server.key
     ```

     ```
     sudo ln -sf /etc/letsencrypt/live/$DOMAIN/fullchain.pem /opt/bitnami/nginx/conf/server.crt
     ```
   + Untuk instans yang lebih lama yang menggunakan distribusi Ubuntu Linux:

     ```
     sudo ln -s /etc/letsencrypt/live/$DOMAIN/privkey.pem /opt/bitnami/nginx/conf/bitnami/certs/server.key
     ```

     ```
     sudo ln -s /etc/letsencrypt/live/$DOMAIN/fullchain.pem /opt/bitnami/nginx/conf/bitnami/certs/server.crt
     ```

1. Masukkan perintah berikut untuk memulai layanan dasar yang Anda hentikan sebelumnya:

   ```
   sudo /opt/bitnami/ctlscript.sh start
   ```

   Anda akan melihat hasil yang mirip dengan berikut ini:  
![\[Layanan instans dimulai.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/lets-encrypt/bitnami-nginx-start-services.png)

   Instans Nginx Anda sekarang dikonfigurasi untuk menggunakan enkripsi SSL. Namun, lalu lintas tidak secara otomatis dialihkan dari HTTP ke HTTPS.

1. Lanjutkan ke [bagian berikutnya](#configure-http-to-https-redirection-nginx) dalam tutorial ini.

## Langkah 8: Mengonfigurasi pengalihan HTTP ke HTTPS untuk aplikasi web Anda
<a name="configure-http-to-https-redirection-nginx"></a>

Anda dapat mengkonfigurasi pengalihan HTTP ke HTTPS untuk instans Nginx Anda. Pengalihan secara otomatis dari HTTP ke HTTPS akan membuat situs Anda hanya dapat diakses oleh pelanggan Anda dengan menggunakan SSL, bahkan ketika mereka ter-connect menggunakan HTTP. Lihat blok Penting di awal tutorial ini untuk informasi tentang distribusi dan struktur file yang berbeda.

Tutorial ini menggunakan Vim untuk tujuan demonstrasi; Namun, Anda dapat menggunakan editor teks pilihan Anda.

**Untuk distribusi Debian Linux - Konfigurasikan pengalihan HTTP ke HTTPS untuk aplikasi web Anda**

**Pendekatan A (instalasi Bitnami menggunakan paket sistem):**

1. Dalam sesi SSH berbasis browser Lightsail untuk instance Nginx Anda, masukkan perintah berikut untuk memodifikasi file konfigurasi server-blok. Ganti `<ApplicationName>` dengan nama aplikasi Anda.

   ```
   sudo vim /opt/bitnami/nginx/conf/server_blocks/<ApplicationName>-server-block.conf
   ```

1. Tekan `i` untuk masuk ke mode insert di editor Vim.

1. Edit file dengan informasi dari contoh berikut:  
![\[File konfigurasi blok server aplikasi.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/using-le-certs-1.png)

1. Tekan kunci **ESC**, dan kemudian masukkan `:wq` untuk menulis (menyimpan) suntingan Anda dan keluar dari Vim.

1. Masukkan perintah berikut untuk memodifikasi bagian server dari file konfigurasi NGINX:

   ```
   sudo vim /opt/bitnami/nginx/conf/nginx.conf
   ```

1. Tekan `i` untuk masuk ke mode insert di editor Vim.

1. Edit file dengan informasi dari contoh berikut:  
![\[File konfigurasi NGINX.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/using-le-certs-2.png)

1. Tekan kunci **ESC**, dan kemudian masukkan `:wq` untuk menulis (menyimpan) suntingan Anda dan keluar dari Vim.

1. Masukkan perintah berikut untuk me-restart layanan yang mendasari dan membuat suntingan Anda efektif:

   ```
   sudo /opt/bitnami/ctlscript.sh restart
   ```

**Pendekatan B (Instalasi Bitnami mandiri):**

1. Dalam sesi SSH berbasis browser Lightsail untuk instance Nginx Anda, masukkan perintah berikut untuk memodifikasi bagian server dari file konfigurasi NGINX:

   ```
   sudo vim /opt/bitnami/nginx/conf/nginx.conf
   ```

1. Tekan `i` untuk masuk ke mode insert di editor Vim.

1. Edit file dengan informasi dari contoh berikut:  
![\[File konfigurasi NGINX.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/using-le-certs-2.png)

1. Tekan kunci **ESC**, dan kemudian masukkan `:wq` untuk menulis (menyimpan) suntingan Anda dan keluar dari Vim.

1. Masukkan perintah berikut untuk me-restart layanan yang mendasari dan membuat suntingan Anda efektif:

   ```
   sudo /opt/bitnami/ctlscript.sh restart
   ```

**Untuk contoh lama yang menggunakan distribusi Ubuntu Linux - Konfigurasikan pengalihan HTTP ke HTTPS untuk aplikasi web Anda**

1. Dalam sesi SSH berbasis browser Lightsail untuk instance Nginx Anda, masukkan perintah berikut untuk mengedit file konfigurasi server web NGINX menggunakan editor teks Vim:

   ```
   sudo vim /opt/bitnami/nginx/conf/bitnami/bitnami.conf
   ```

1. Tekan `i` untuk masuk ke mode insert di editor Vim.

1. Dalam file tersebut, masukkan teks berikut antara `server_name localhost;` dan `include "/opt/bitnami/nginx/conf/bitnami/bitnami-apps-prefix.conf";`:

   ```
   return 301 https://$host$request_uri;
   ```

   Hasilnya akan terlihat seperti berikut ini:  
![\[File konfigurasi NGINX diedit untuk pengalihan HTTP ke HTTPS.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/lets-encrypt/bitnami-nginx-config-file.png)

1. Tekan kunci **ESC**, dan kemudian masukkan `:wq` untuk menulis (menyimpan) suntingan Anda dan keluar dari Vim.

1. Masukkan perintah berikut untuk me-restart layanan yang mendasari dan membuat suntingan Anda efektif:

   ```
   sudo /opt/bitnami/ctlscript.sh restart
   ```

   Instans Nginx Anda sekarang dikonfigurasi untuk secara otomatis mengalihkan koneksi dari HTTP ke HTTPS. Ketika pengunjung membuka `http://www.example.com`, mereka akan secara otomatis dialihkan ke alamat `https://www.example.com` yang dienkripsi.

## Langkah 9: Memperbarui sertifikat Let's Encrypt setiap 90 hari
<a name="renew-a-lets-encrypt-certificate-nginx"></a>

Sertifikat Let’s Encrypt berlaku selama 90 hari. Sertifikat dapat diperpanjang 30 hari sebelum kedaluwarsa. Untuk memperbaharui sertifikat Let's Encrypt, jalankan perintah asli yang digunakan untuk mendapatkannya. Ulangi langkah-langkah dalam bagian [Membuat permintaan sertifikat wildcard SSL Let’s Encrypt](#request-a-lets-encrypt-certificate-nginx) dari tutorial ini.

------
#### [ Lightsail ]

**Daftar Isi**
+  [Langkah 1: Lengkapi prasyarat](#complete-the-prerequisites) 
+  [Langkah 2: Instal Certbot pada instance Lightsail Anda](#install-certbot-on-your-instance) 
+  [Langkah 3: Minta sertifikat wildcard Let's Encrypt SSL](#request-a-lets-encrypt-certificate) 
+  [Langkah 4: Tambahkan catatan TXT ke zona DNS domain Anda](#add-a-text-record-to-your-domains-dns-zone-lets-encrypt) 
+  [Langkah 5: Konfirmasikan bahwa catatan TXT telah disebarkan](#confirm-the-text-records-have-propagated-lets-encrypt) 
+  [Langkah 6: Lengkapi permintaan sertifikat Let's Encrypt SSL](#complete-the-lets-encrypt-certificate-request) 
+  [Langkah 7: Perbarui konfigurasi SSL di NGINX dan alihkan lalu lintas dari HTTP ke HTTPS](#update-ssl-configuration) 
+  [Langkah 8: Perbarui sertifikat Let's Encrypt setiap 90 hari](#renew-a-lets-encrypt-certificate) 

## Langkah 1: Selesaikan prasyarat
<a name="complete-the-prerequisites"></a>

Selesaikan prasyarat berikut jika Anda belum melakukannya:
+  Buat instance Nginx di Lightsail. Untuk mempelajari lebih lanjut, lihat [Membuat instance](how-to-create-amazon-lightsail-instance-virtual-private-server-vps.md). 
+  Daftarkan nama domain, dan dapatkan akses administratif untuk mengedit catatan DNS-nya. Untuk mempelajari lebih lanjut, lihat [DNS](understanding-dns-in-amazon-lightsail.md). 
**catatan**  
 Sebaiknya Anda mengelola catatan DNS domain Anda menggunakan zona DNS Lightsail. Untuk mempelajari lebih lanjut, lihat [Membuat zona DNS untuk mengelola catatan DNS domain Anda](lightsail-how-to-create-dns-entry.md). 
+  Gunakan terminal SSH berbasis browser di konsol Lightsail untuk melakukan langkah-langkah dalam tutorial ini:   
![\[SSH cepat terhubung di halaman rumah Lightsail.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/resource_cards/nginx-ssh-quick-connect.png)
**catatan**  
 Anda juga dapat menggunakan klien SSH Anda sendiri, seperti PuTTY. Untuk mempelajari lebih lanjut tentang mengonfigurasi PuTTY, [lihat Mengunduh dan mengatur PuTTY untuk terhubung menggunakan SSH](lightsail-how-to-set-up-putty-to-connect-using-ssh.md) di Amazon Lightsail. 

## Langkah 2: Instal Certbot pada instance Lightsail Anda
<a name="install-certbot-on-your-instance"></a>

 Certbot adalah sebuah klien yang digunakan untuk meminta sertifikat dari Let's Encrypt dan men-deploy-nya ke web server. Let's Encrypt menggunakan protokol ACME untuk mengeluarkan sertifikat, dan Certbot adalah klien berkemampuan ACME yang berinteraksi dengan Let's Encrypt. 

**Untuk menginstal Certbot pada instance Lightsail Anda**

1.  Connect ke instans Anda menggunakan klien SSH, misalnya, terminal SSH berbasis browser Lightsail. Masukkan perintah berikut untuk memperbarui paket pada instance Anda: 

   ```
   sudo apt-get update
   ```

1.  Masukkan perintah berikut untuk menginstal paket properti perangkat lunak. Developer Certbot menggunakan Arsip Paket Personal (PPA) untuk mendistribusikan Certbot. Paket properti perangkat lunak membuatnya lebih efisien untuk dikerjakan PPAs. 

   ```
   sudo apt-get install software-properties-common -y
   ```

1. Masukkan perintah berikut untuk memperbarui apt untuk memasukkan repositori yang baru:

   ```
   sudo apt-get update -y
   ```

1. Masukkan perintah berikut untuk menginstal Certbot:

   ```
   sudo apt-get install certbot -y
   ```

   Certbot sekarang diinstal pada instance Lightsail Anda.

## Langkah 3: Membuat permintaan sertifikat wildcard SSL Let’s Encrypt
<a name="request-a-lets-encrypt-certificate"></a>

 Mulailah proses meminta sertifikat dari Let's Encrypt. Dengan menggunakan Certbot, buat permintaan sertifikat wildcard, yang memungkinkan Anda menggunakan sertifikat tunggal untuk domain dan subdomainnya. Sebagai contoh, satu sertifikat wildcard tunggal bekerja untuk domain tingkat atas `example.com`, dan subdomain `blog.example.com`, dan `stuff.example.com`.

**Untuk membuat permintaan sertifikat wildcard SSL Let's Encrypt**

1.  Pada jendela terminal SSH berbasis peramban yang sama yang digunakan di [langkah 2](#install-certbot-on-your-instance) dalam tutorial ini, masukkan perintah berikut untuk mengatur variabel lingkungan untuk domain Anda. Anda sekarang dapat menyalin dan menyisipkan perintah untuk mendapatkan sertifikat dengan lebih efisien. Pastikan untuk mengganti `domain` dengan nama domain terdaftar Anda. 

   ```
   DOMAIN=domain
   WILDCARD=*.$DOMAIN
   ```

   Contoh:

   ```
   DOMAIN=example.com
   WILDCARD=*.$DOMAIN
   ```

1. Masukkan perintah berikut untuk mengonfirmasi bahwa variabel mengembalikan nilai yang benar:

   ```
   echo $DOMAIN && echo $WILDCARD
   ```

   Anda akan melihat hasil yang mirip dengan berikut ini:  
![\[Konfirmasikan variabel lingkungan domain.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/lets-encrypt/confirm-variables.png)

1.  Masukkan perintah berikut untuk memulai Certbot dalam mode interaktif. Perintah ini memberitahu Certbot untuk menggunakan metode otorisasi manual dengan tantangan DNS untuk memverifikasi kepemilikan domain. Aplikasi ini membuat permintaan sertifikat wildcard untuk domain tingkat atas Anda, serta subdomainnya. 

   ```
   sudo certbot -d $DOMAIN -d $WILDCARD --manual --preferred-challenges dns certonly
   ```

1. Masukkan alamat email Anda saat diminta, karena itu akan digunakan untuk pemberitahuan pembaruan dan keamanan.

1.  Baca persyaratan layanan Let’s Encrypt. Setelah selesai, tekan Y jika Anda setuju. Jika Anda tidak setuju, Anda tidak dapat memperoleh sertifikat Let's Encrypt. 

1.  Berikan respons sesuai dengan prompt untuk berbagi alamat email Anda dan menjawab peringatan tentang alamat IP Anda yang sedang di-log. 

1.  Let’s Encrypt sekarang meminta Anda untuk memverifikasi bahwa Anda memiliki domain yang ditentukan. Anda melakukannya dengan menambahkan data TXT ke catatan DNS untuk domain Anda. Satu set nilai catatan TXT disediakan seperti yang ditunjukkan dalam contoh berikut: 
**catatan**  
 Let's Encrypt dapat menyediakan satu atau beberapa catatan TXT yang harus Anda gunakan untuk verifikasi. Dalam contoh ini, kami diberi dua catatan TXT untuk digunakan untuk verifikasi.   
![\[Catatan TXT untuk sertifikat Let's Encrypt.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/lets-encrypt/get-TXT-records.png)

1.  Biarkan sesi SSH berbasis browser Lightsail—Anda kembali ke sana nanti dalam tutorial ini. Lanjutkan ke [bagian selanjutnya](#add-a-text-record-to-your-domains-dns-zone-lets-encrypt) dari tutorial ini. 

## Langkah 4: Tambahkan catatan TXT ke zona DNS domain Anda
<a name="add-a-text-record-to-your-domains-dns-zone-lets-encrypt"></a>

 Menambahkan catatan TXT ke zona DNS domain Anda akan memverifikasi bahwa Anda adalah pemilik domain. Untuk tujuan demonstrasi, kami menggunakan zona DNS Lightsail. Namun, langkah-langkah tersebut mungkin serupa untuk zona DNS lain yang biasanya di-host-ing oleh registrar domain. 

**catatan**  
 Untuk mempelajari lebih lanjut tentang cara membuat zona DNS Lightsail untuk domain Anda, [lihat Membuat zona DNS untuk mengelola catatan DNS domain Anda di Lightsail](lightsail-how-to-create-dns-entry.md). 

**Untuk menambahkan data TXT ke zona DNS domain Anda di Lightsail**

1. Di panel navigasi kiri, pilih **Domain &** DNS.

1.  Pada bagian **Zona DNS** di halaman tersebut, pilih Zona DNS untuk domain yang Anda tentukan dalam permintaan sertifikat Certbot. 

1. Di editor zona DNS, pilih catatan **DNS**.

1. Pilih **Tambahkan catatan**.

1.  Di menu tarik-turun **jenis Rekam**, pilih catatan **TXT**. 

1.  Masukkan nilai yang ditentukan oleh permintaan sertifikat Let's Encrypt ke dalam **nama Rekam** dan **Menanggapi dengan bidang**. 
**catatan**  
 Konsol Lightsail telah mengisi sebelumnya bagian puncak domain Anda. Misalnya, jika Anda ingin menambahkan subdomain `_acme-challenge.example.com`, maka anda hanya perlu memasukkan `_acme-challenge` ke dalam kotak teks, dan Lightsail akan menambahkan bagian `.example.com` untuk Anda ketika Anda menyimpan catatan. 

1. Pilih **Simpan**.

1.  Ulangi langkah 4 hingga 7 untuk menambahkan set catatan TXT kedua yang ditentukan oleh permintaan sertifikat Let's Encrypt. 

1.  Biarkan jendela browser konsol Lightsail tetap terbuka — Anda kembali ke sana nanti dalam tutorial ini. Lanjutkan ke [bagian selanjutnya](#confirm-the-text-records-have-propagated-lets-encrypt) dari tutorial ini. 

## Langkah 5: Mengonfirmasi bahwa data TXT telah disebarkan
<a name="confirm-the-text-records-have-propagated-lets-encrypt"></a>

 Gunakan MxToolbox utilitas untuk mengonfirmasi bahwa catatan TXT telah disebarkan ke DNS Internet. Propagasi catatan DNS mungkin memerlukan waktu beberapa saat tergantung pada penyedia host-ing DNS Anda, dan waktu untuk tayang yang dikonfigurasi (TTL) untuk catatan DNS Anda. Penting bagi Anda untuk menyelesaikan langkah ini, dan pastikan bahwa catatan TXT Anda telah disebarkan, sebelum melanjutkan permintaan sertifikat Certbot Anda. Jika tidak, permintaan sertifikat Anda akan gagal. 

**Untuk mengkonfirmasi catatan TXT telah disebarkan ke DNS Internet**

1.  Buka jendela browser baru dan pergi ke [https://mxtoolbox.com/TXTLookup.aspx.](https://mxtoolbox.com/TXTLookup.aspx) 

1.  Masukkan teks berikut ke dalam kotak teks. Pastikan untuk mengganti `domain` dengan domain Anda. 

   ```
   _acme-challenge.domain
   ```

   Contoh:

   ```
   _acme-challenge.example.com
   ```  
![\[MxToolbox Pencarian catatan TXT.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/lets-encrypt/mxtoolbox-text-record-lookup.png)

1. Pilih **Pencarian TXT** untuk menjalankan pemeriksaan.

1. Salah satu respons berikut terjadi:
   +  Jika catatan TXT Anda telah disebarkan ke DNS Internet, Anda melihat respons yang mirip dengan yang ditunjukkan pada tangkapan layar berikut. Tutup jendela peramban dan lanjutkan ke [bagian berikutnya](#complete-the-lets-encrypt-certificate-request-nginx) dalam tutorial ini.   
![\[Konfirmasi bahwa catatan TXT telah disebarkan.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/lets-encrypt/mxtoolbox-propagated-text-record-lookup.png)
   +  Jika catatan TXT Anda belum disebarkan ke DNS Internet, Anda melihat respons DNS Record not **found**. Konfirmasikan bahwa Anda telah menambahkan catatan DNS yang benar ke zona DNS domain Anda. Jika Anda telah menambahkan catatan yang benar, tunggu beberapa saat lebih lama untuk membiarkan catatan DNS domain Anda menyebar, dan jalankan pencarian TXT lagi. 

## Langkah 6: Menyelesaikan permintaan sertifikat SSL Let's Encrypt
<a name="complete-the-lets-encrypt-certificate-request"></a>

 Kembali ke sesi SSH berbasis browser Lightsail untuk instans Anda dan selesaikan permintaan sertifikat Let's Encrypt. Certbot menyimpan sertifikat SSL, rantai, dan file kunci Anda ke direktori tertentu pada instans Anda.

**Untuk menyelesaikan permintaan sertifikat SSL Let's Encrypt**

1.  Dalam sesi SSH berbasis browser Lightsail untuk instans Anda, **tekan Enter untuk melanjutkan permintaan sertifikat SSL Let's** Encrypt Anda. Jika berhasil, respons yang mirip dengan yang ditunjukkan pada gambar berikut akan muncul:   
![\[Permintaan sertifikat Let's Encrypt yang berhasil.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/lets-encrypt/certificate-request-success.png)

    Pesan yang mengonfirmasi bahwa file sertifikat, rantai, dan kunci disimpan di direktori `/etc/letsencrypt/live/domain/`. Pastikan untuk mengganti `domain` dengan domain Anda, seperti `/etc/letsencrypt/live/example.com/`. 

1.  Catat tanggal kedaluwarsa yang ditentukan dalam pesan tersebut. Anda menggunakannya untuk memperpanjang sertifikat Anda pada tanggal tersebut.   
![\[Mari Enkripsi tanggal perpanjangan sertifikat.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/lets-encrypt/certificate-renewal-date.png)

## Langkah 7: Perbarui konfigurasi SSL di NGINX dan alihkan lalu lintas dari HTTP ke HTTPS
<a name="update-ssl-configuration"></a>

**Untuk memperbarui konfigurasi SSL di default.conf NGINX**

1.  Dalam sesi SSH untuk instance Nginx Anda, masukkan perintah berikut untuk menghentikan layanan yang mendasarinya: 

   ```
   sudo systemctl stop nginx
   sudo systemctl stop mariadb
   sudo systemctl stop php8.2-fpm
   ```

   Anda akan melihat respons yang mirip dengan berikut ini:  
![\[Layanan instance Nginx berhenti.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/lets-encrypt/nginx-stop-services.png)

1.  Masukkan perintah berikut untuk mengatur variabel lingkungan untuk domain Anda. Anda sekarang dapat menyalin dan menempelkan perintah untuk menautkan file sertifikat dengan lebih efisien. Pastikan untuk mengganti `domain` dengan nama domain terdaftar Anda. 

   ```
   DOMAIN=domain
   ```

   Contoh:

   ```
   DOMAIN=example.com
   ```

1. Masukkan perintah berikut untuk mengonfirmasi bahwa variabel mengembalikan nilai yang benar:

   ```
   echo $DOMAIN
   ```

   Anda akan melihat hasil yang mirip dengan berikut ini:  
![\[Konfirmasikan variabel lingkungan domain.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/lets-encrypt/confirm-domain-variable.png)

1. Jalankan perintah di bawah ini untuk mengubah konfigurasi SSL:

   ```
   sudo sed \
   -i -e "s|ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem|ssl_certificate /etc/letsencrypt/live/$DOMAIN/fullchain.pem|g" \
   -i -e "s|ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key|ssl_certificate_key /etc/letsencrypt/live/$DOMAIN/privkey.pem|g" \
   /etc/nginx/conf.d/default.conf
   ```

1.  Setelah menimpa `default.conf` file, jalankan perintah di bawah ini untuk memeriksa konfigurasi dan restart NGINX

   ```
   sudo nginx -t
   sudo systemctl restart nginx
   sudo systemctl restart mariadb
   sudo systemctl restart php8.2-fpm
   ```

   Anda akan melihat hasil yang mirip dengan berikut ini:  
![\[Layanan instance Nginx dimulai.\]](http://docs.aws.amazon.com/id_id/lightsail/latest/userguide/images/instances/lets-encrypt/nginx-start-services.png)

    Instans Nginx Anda sekarang dikonfigurasi untuk menggunakan enkripsi SSL dan lalu lintas dialihkan dari HTTP ke HTTPS 

## Langkah 8: Perbarui sertifikat Let's Encrypt setiap 90 hari
<a name="renew-a-lets-encrypt-certificate"></a>

 Sertifikat Let’s Encrypt berlaku selama 90 hari. Sertifikat dapat diperpanjang 30 hari sebelum kedaluwarsa. Untuk memperbarui sertifikat Let's Encrypt, ulangi [Langkah 3: Minta sertifikat wildcard Let's Encrypt SSL](#request-a-lets-encrypt-certificate-nginx). 

------