Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Aktifkan HTTPS pada instans Nginx Anda dengan Let's Encrypt dan Certbot
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 cara meminta sertifikat wildcard Let's Encrypt menggunakan Certbot, dan mengintegrasikannya dengan instance Nginx Anda.
Daftar Isi
Langkah 1: Selesaikan prasyarat
Lengkapi prasyarat berikut jika Anda belum melakukannya:
-
Buat instance Nginx di Lightsail. Untuk mempelajari lebih lanjut, lihat Membuat instance.
-
Daftarkan nama domain, dan dapatkan akses administratif untuk mengedit catatan DNS-nya. Untuk mempelajari lebih lanjut, lihat DNS.
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.
-
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 di Amazon Lightsail.
Langkah 2: Instal Certbot pada instance Lightsail Anda
Certbot adalah klien yang digunakan untuk meminta sertifikat dari Let's Encrypt dan menyebarkannya ke server web. Let's Encrypt menggunakan protokol ACME untuk mengeluarkan sertifikat, dan Certbot adalah ACME-enabled klien yang berinteraksi dengan Let's Encrypt.
Untuk menginstal Certbot pada instance Lightsail Anda
-
Masuk ke konsol Lightsail
. -
Pada tab Instances di halaman beranda Lightsail, pilih ikon koneksi cepat SSH untuk instance yang ingin Anda sambungkan.
-
Setelah sesi SSH berbasis browser Lightsail Anda terhubung, masukkan perintah berikut untuk memperbarui paket pada instance Anda:
sudo apt-get update -
Masukkan perintah berikut untuk menginstal paket properti perangkat lunak. Pengembang Certbot menggunakan Personal Package Archive (PPA) untuk mendistribusikan Certbot. Paket properti perangkat lunak tersebut membuatnya lebih efisien untuk bekerja dengan PPA.
sudo apt-get install software-properties-common -y -
Masukkan perintah berikut untuk memperbarui apt untuk memasukkan repositori yang baru:
sudo apt-get update -y -
Masukkan perintah berikut untuk menginstal Certbot:
sudo apt-get install certbot -yCertbot sekarang diinstal pada instance Lightsail Anda.
Langkah 3: Membuat permintaan sertifikat wildcard SSL Let’s Encrypt
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 meminta sertifikat wildcard Let's Encrypt SSL
-
Di jendela terminal SSH berbasis browser yang sama yang digunakan pada langkah sebelumnya dari tutorial ini, masukkan perintah berikut untuk mengatur variabel lingkungan untuk domain Anda. Pastikan untuk mengganti
domaindengan nama domain terdaftar Anda.DOMAIN=domainWILDCARD=*.$DOMAINContoh:
DOMAIN=example.com WILDCARD=*.$DOMAIN -
Masukkan perintah berikut untuk mengonfirmasi bahwa variabel mengembalikan nilai yang benar:
echo $DOMAIN && echo $WILDCARDAnda akan melihat hasil yang mirip dengan berikut ini:
-
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 -
Masukkan alamat email Anda saat diminta, karena digunakan untuk pembaruan dan pemberitahuan keamanan.
-
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.
-
Berikan respons sesuai dengan prompt untuk berbagi alamat email Anda dan menjawab peringatan tentang alamat IP Anda yang sedang di-log.
-
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.
Langkah 4: Tambahkan catatan TXT ke zona DNS domain Anda
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.
Untuk menambahkan data TXT ke zona DNS domain Anda di Lightsail
-
Di panel navigasi kiri, pilih Domain & DNS.
-
Pada bagian Zona DNS di halaman tersebut, pilih Zona DNS untuk domain yang Anda tentukan dalam permintaan sertifikat Certbot.
-
Di editor zona DNS, pilih catatan DNS.
-
Pilih Tambahkan catatan.
-
Di menu tarik-turun jenis Rekam, pilih catatan TXT.
-
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
, maka anda hanya perlu memasukkan_acme-challenge.example.comke dalam kotak teks, dan Lightsail akan menambahkan bagian_acme-challenge.example.comuntuk Anda ketika Anda menyimpan catatan. -
Pilih Simpan.
-
Ulangi langkah 4 hingga 7 untuk menambahkan set catatan TXT kedua yang ditentukan oleh permintaan sertifikat Let's Encrypt.
-
Biarkan jendela browser konsol Lightsail tetap terbuka — Anda kembali ke sana nanti dalam tutorial ini. Lanjutkan ke bagian selanjutnya dari tutorial ini.
Langkah 5: Mengonfirmasi bahwa data TXT telah disebarkan
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
-
Buka jendela browser baru dan pergi ke https://mxtoolbox.com/TXTLookup.aspx
. -
Masukkan teks berikut ke dalam kotak teks. Pastikan untuk mengganti
dengan domain Anda.domain_acme-challenge.domainContoh:
_acme-challenge.example.com
-
Pilih Pencarian TXT untuk menjalankan pemeriksaan.
-
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 dalam tutorial ini.
-
Jika catatan TXT Anda belum disebarkan ke DNS Internet, Anda akan 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
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
-
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:
Pesan yang mengonfirmasi bahwa file sertifikat, rantai, dan kunci disimpan di direktori
/etc/letsencrypt/live/. Pastikan untuk menggantidomain/dengan domain Anda, sepertidomain/etc/letsencrypt/live/.example.com/ -
Catat tanggal kedaluwarsa yang ditentukan dalam pesan tersebut. Anda menggunakannya untuk memperpanjang sertifikat Anda pada tanggal tersebut.
Langkah 7: Perbarui konfigurasi SSL di Nginx dan alihkan lalu lintas dari HTTP ke HTTPS
Untuk memperbarui konfigurasi SSL di default.conf Nginx
-
Dalam sesi SSH untuk instans Nginx Anda, masukkan perintah berikut untuk menghentikan layanan yang mendasarinya:
sudo systemctl stop nginx sudo systemctl stop mariadb sudo systemctl stop php8.2-fpmAnda akan melihat respons yang mirip dengan berikut ini:
-
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
dengan nama domain terdaftar Anda.domainDOMAIN=domainContoh:
DOMAIN=example.com -
Masukkan perintah berikut untuk mengonfirmasi bahwa variabel mengembalikan nilai yang benar:
echo $DOMAINAnda akan melihat hasil yang mirip dengan berikut ini:
-
Jalankan perintah di bawah ini untuk mengubah konfigurasi SSL:
catatan
Jika Anda menutup jendela terminal SSH berbasis browser Anda sejak mengatur
DOMAINvariabel di Langkah 3, jalankanDOMAIN=lagi, gantiexample.comexample.comdengan domain Anda.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 -
Setelah menimpa
default.conffile, jalankan perintah di bawah ini untuk memeriksa konfigurasi dan restart Nginxsudo nginx -t sudo systemctl restart nginx sudo systemctl restart mariadb sudo systemctl restart php8.2-fpmAnda akan melihat hasil yang mirip dengan berikut ini:
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
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.