Let's Encrypt adalah Certificate Authority (CA) yang memfasilitasi perolehan dan pemasangan sertifikat TLS/SSL gratis, sehingga memungkinkan HTTPS terenkripsi di server web. Ini menyederhanakan proses dengan menyediakan klien perangkat lunak, Certbot, yang mencoba mengotomatiskan sebagian besar (jika tidak semua) langkah yang diperlukan. Saat ini, seluruh proses mendapatkan dan menginstal sertifikat sepenuhnya otomatis di Apache dan Nginx.
Dalam panduan ini, kami akan menggunakan Certbot untuk mendapatkan sertifikat SSL gratis untuk Apache di Ubuntu 20.04, dan pastikan sertifikat ini diatur untuk diperpanjang secara otomatis.
Tutorial ini menggunakan file host virtual terpisah sebagai ganti file konfigurasi default Apache untuk menyiapkan situs web yang akan diamankan oleh Let's Encrypt. Sebaiknya buat file host virtual Apache baru untuk setiap domain yang dihosting di server, karena ini membantu menghindari kesalahan umum dan mempertahankan file konfigurasi default sebagai penyiapan cadangan.
Persyaratan yang harus terpenuhi untuk menginstall Let's Encrypt di Ubuntu 20.04
Untuk mengikuti tutorial ini, Anda memerlukan: (Lewati bagian ini jika anda sudah mahir)
- Satu server Ubuntu 20.04 disiapkan dengan mengikuti pengaturan server awal ini untuk tutorial Ubuntu 20.04, termasuk pengguna non-root Sudo dan firewall.
- Nama domain yang sepenuhnya terdaftar. Tutorial ini akan menggunakan domain_anda sebagai contoh. Anda dapat membeli nama domain di Namecheap, mendapatkannya secara gratis di Freenom, atau menggunakan pencatat domain pilihan Anda.
- Apache diinstal dengan mengikuti Cara Menginstal Apache di Ubuntu 20.04. Pastikan Anda memiliki file host virtual untuk domain Anda. Tutorial ini akan menggunakan /etc/Apache2/sites-available/your_domain.conf sebagai contoh.
Langkah-langkah untuk menginstall Let's Encrypt di Ubuntu 20.04
1. Install Cerboot
Untuk mendapatkan sertifikat SSL dengan Let's Encrypt, pertama-tama kita harus menginstal perangkat lunak Certbot di server Anda. Kami akan menggunakan repositori paket Ubuntu default untuk itu. Kami membutuhkan dua paket: certbot, dan python3-certbot-apache. Yang terakhir adalah plugin yang mengintegrasikan Certbot dengan Apache, memungkinkan untuk mengotomatisasi mendapatkan sertifikat dan mengonfigurasi HTTPS dalam server web Anda dengan satu perintah.
sudo apt install certbot python3-certbot-apache
Anda akan diminta untuk mengkonfirmasi instalasi dengan menekan Y, lalu ENTER. Certbot sekarang terinstal di server Anda. Pada langkah berikutnya, kami akan memverifikasi konfigurasi Apache untuk memastikan host virtual Anda disetel dengan benar. Ini akan memastikan bahwa skrip klien certbot akan dapat mendeteksi domain Anda dan mengkonfigurasi ulang server web Anda untuk menggunakan sertifikat SSL yang baru dibuat secara otomatis.
2. Memeriksa Konfigurasi Host Virtual Apache Anda
Agar dapat secara otomatis mendapatkan dan mengkonfigurasi SSL untuk server web Anda, Certbot perlu menemukan host virtual yang benar di dalam file konfigurasi Apache Anda. Nama domain server Anda akan diambil dari arahan ServerName dan ServerAlias yang ditentukan dalam blok konfigurasi VirtualHost Anda. Jika Anda mengikuti langkah penyiapan virtual host dalam tutorial penginstalan Apache, Anda seharusnya sudah menyiapkan blok VirtualHost untuk domain Anda di /etc/apache2/sites-available/your_domain.conf dengan ServerName dan juga arahan ServerAlias yang sudah disetel dengan tepat. Untuk memeriksanya, buka file host virtual untuk domain Anda menggunakan nano atau editor teks pilihan Anda:
sudo nano /etc/apache2/sites-available/your_domain.conf
Temukan baris ServerName dan ServerAlias yang ada. seperti di bawah ini:
/etc/apache2/sites-available/your_domain.conf
...
ServerName your_domain
ServerAlias www.your_domain
...
Jika Anda sudah menyiapkan ServerName dan ServerAlias seperti ini, Anda dapat keluar dari editor teks dan melanjutkan ke langkah berikutnya. Jika Anda menggunakan nano, Anda dapat keluar dengan mengetik CTRL+X, lalu Y dan ENTER untuk mengonfirmasi.
Jika konfigurasi host virtual Anda saat ini tidak sesuai dengan contoh, perbarui sesuai dengan itu. Setelah selesai, simpan file dan keluar dari editor. Kemudian, jalankan perintah berikut untuk memvalidasi perubahan Anda:
sudo apache2ctl configtest
Anda harus mendapatkan Syntaks OK sebagai tanggapan. Jika Anda mendapatkan kesalahan, buka kembali file host virtual dan periksa kesalahan ketik atau karakter yang hilang. Setelah sintaks file konfigurasi Anda benar, muat ulang Apache agar perubahan diterapkan:
sudo systemctl reload apache2
Dengan perubahan ini, Certbot akan dapat menemukan blok VirtualHost yang benar dan memperbaruinya. Selanjutnya, perbaharui firewall untuk mengizinkan lalu lintas HTTPS di server anda.
3. Mengizinkan HTTPS Melalui Firewall
Jika Anda mengaktifkan firewall UFW, seperti yang direkomendasikan oleh panduan prasyarat, Anda harus menyesuaikan pengaturan untuk mengizinkan lalu lintas HTTPS. Setelah instalasi, Apache mendaftarkan beberapa profil aplikasi UFW yang berbeda. Kami dapat memanfaatkan profil Lengkap Apache untuk mengizinkan lalu lintas HTTP dan HTTPS di server Anda.
Untuk memverifikasi jenis lalu lintas apa yang saat ini diizinkan di server Anda, Anda dapat menggunakan:
sudo ufw status
Tampilanya kurang lebih akan seperti d bawah ini
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
Untuk mengizinkan lalu lintas HTTPS tambahan, izinkan profil "Apache Full" dan hapus profil "Apache":
sudo ufw allow 'Apache Full' sudo ufw delete allow 'Apache'
Kemudian kembali jalankan perintah:
sudo ufw status
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache Full (v6) ALLOW Anywhere (v6)
Kamu sekarang siap menjalankan Certbot.
4. Generate Sertifikat SSL
Certbot menyediakan berbagai cara untuk mendapatkan sertifikat SSL melalui plugin. Plugin Apache akan menangani konfigurasi ulang Apache dan memuat ulang konfigurasi kapan pun diperlukan. Untuk menggunakan plugin ini, ketik perintah ini:
sudo certbot --apache
Skrip ini akan meminta kamu menjawab serangkaian pertanyaan untuk mengonfigurasi sertifikat SSL. Pertama, kamu akan diminta untuk memasukkan alamat email yang valid. Email ini akan digunakan untuk pemberitahuan pembaruan dan pemberitahuan keamanan:
Output
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): you@your_domain
Setelah memberikan alamat email yang valid, tekan ENTER untuk melanjutkan ke langkah berikutnya. Anda kemudian akan diminta untuk mengonfirmasi apakah Anda menyetujui persyaratan layanan Let's Encrypt. Anda dapat mengonfirmasi dengan menekan A lalu ENTER:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A
Selanjutnya, Anda akan ditanya apakah Anda ingin membagikan email Anda dengan Electronic Frontier Foundation untuk menerima berita dan informasi lainnya. Jika Anda tidak ingin berlangganan konten mereka, ketik N. Jika tidak, ketik Y. Kemudian, tekan ENTER untuk melanjutkan ke langkah berikutnya.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N
Langkah selanjutnya akan meminta kamu untuk memberi tahu Certbot tentang domain mana yang ingin mengaktifkan HTTPS. Nama domain yang terdaftar secara otomatis diperoleh dari konfigurasi host virtual Apache Anda, itulah mengapa penting untuk memastikan Anda memiliki pengaturan ServerName dan ServerAlias yang benar yang dikonfigurasi di host virtual Anda. Jika Anda ingin mengaktifkan HTTPS untuk semua nama domain yang terdaftar (disarankan), Anda dapat membiarkan prompt kosong dan tekan ENTER untuk melanjutkan. Jika tidak, pilih domain yang ingin Anda aktifkan HTTPSnya dengan mencantumkan setiap nomor yang sesuai, dipisahkan dengan koma dan/atau spasi, lalu tekan ENTER.
Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: your_domain
2: www.your_domain
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel):
Kamu akan melihat output seperti ini:
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for your_domain
http-01 challenge for www.your_domain
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/your_domain-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/your_domain-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/your_domain-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/your_domain-le-ssl.conf
Selanjutnya, Anda akan diminta untuk memilih apakah Anda ingin lalu lintas HTTP dialihkan ke HTTPS atau tidak. Dalam praktiknya, itu berarti ketika seseorang mengunjungi situs web Anda melalui saluran tidak terenkripsi (HTTP), mereka akan secara otomatis dialihkan ke alamat HTTPS situs web Anda. Pilih 2 untuk mengaktifkan pengalihan, atau 1 jika Anda ingin menyimpan HTTP dan HTTPS sebagai metode terpisah untuk mengakses situs web Anda.
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Setelah langkah ini, konfigurasi Certbot selesai, dan anda akan disajikan dengan komentar terakhir tentang sertifikat baru anda, di mana menemukan file yang dihasilkan, dan cara menguji konfigurasi Anda menggunakan alat eksternal yang menganalisis keaslian sertifikat Anda:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://your_domain and
https://www.your_domain
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=your_domain
https://www.ssllabs.com/ssltest/analyze.html?d=www.your_domain
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/your_domain/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/your_domain/privkey.pem
Your cert will expire on 2020-07-27. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Sertifikat Anda sekarang diinstal dan dimuat ke dalam konfigurasi Apache. Coba muat ulang situs web Anda menggunakan https:// dan perhatikan indikator keamanan browser Anda. Ini harus menunjukkan bahwa situs Anda diamankan dengan benar, biasanya dengan menyertakan ikon kunci di bilah alamat. Anda dapat menggunakan SSL Labs Server Test untuk memverifikasi nilai sertifikat Anda dan mendapatkan informasi mendetail tentangnya, dari perspektif layanan eksternal. Pada langkah selanjutnya dan terakhir, kami akan menguji fitur perpanjangan otomatis Certbot, yang menjamin bahwa sertifikat Anda akan diperpanjang secara otomatis sebelum tanggal kedaluwarsa.
Kesimpulan
Dalam tutorial ini, Anda telah menginstal certbot klien Let's Encrypt, mengkonfigurasi dan menginstal sertifikat SSL untuk domain Anda, dan mengkonfirmasi bahwa layanan pembaruan otomatis Certbot aktif dalam systemctl. Jika Anda memiliki pertanyaan lebih lanjut tentang menggunakan Certbot, anda bisa beralih ke dokumentasi let's encrypt.
Sekian dulu, dan sampai jumpa ditulisan berikutnya