Cara Install SSL Let's Encrypt Nginx di Ubuntu 18.04 - Halo teman-teman semuanya, pada kesempatan kali ini kita semua akan belajar tentang bagaimana cara menginstall SSL Let’s Encrypt di Nginx dan Operating System Ubuntu 18.04.
Let’s Encrypt merupakan penyedia Otoritas Sertifikat (CA) dimana memungkinkan kita menggunakan HTTPS terenkripsi pada website kita.
Kita nanti akan menggunakan software klien yang akan mempermudah mempercepat kita bisa menginstall HTTPS Let’s Encrypt pada website kita.
Dalam tutorial ini, Anda akan menggunakan Certbot untuk mendapatkan sertifikat SSL gratis untuk Nginx di Ubuntu 16.04 dan mengatur sertifikat kita untuk memperbarui secara otomatis.
Persyaratan
- Server Ubuntu
- Domain yang sudah terdaftar.
- Sudah menghubungkan DNS Domain ke server / IP Public Server.
- Sudah menginstall web server Nginx di server Ubuntu.
Langkah 1 - Menginstall Cerbot
Langkah pertama adalah kita harus menginstall software yang bernama cerbot untuk mempermudah kita nanti dalam membuat sebuah SSL Let’s Encrypt.
Silahkan jalankan perintah dibawah ini untuk menambah sebuah repository baru
sudo add-apt-repository ppa:certbot/certbot
Silahkan tekan ENTER
. Kemudian akan otomatis memperbarui daftar paket untuk mengambil informasi paket repositori baru.
sudo apt-get update
Dan sekarang kita bisa langsung menginstall paket Nginx Cerbot dengan perintah
sudo apt-get install python-certbot-nginx
Certbot sekarang sudah siap digunakan, tetapi agar dapat mengkonfigurasi SSL untuk Nginx, kita perlu memverifikasi beberapa konfigurasi di Nginx.
Langkah 2 - Menyiapkan Nginx
Cerbot bisa secara otomatis mengkonfigurasi SSL untuk NGINX di server kita, akan tetapi Cerbot juga harus bisa menemukan server blok yang sudah kita konfigurasi sebelumnya. prosesnya yaitu mencari server_name
yang cocok dengan nama domain kita.
Kita bisa langsung mencobanya, misalkan kita baru saja menginstall Nginx baru. Kita bisa coba dengan mengubah default server block di Nginx.
Buka Server Block Default di Nginx dengan nano :
sudo nano /etc/nginx/sites-available/default
Silahkan cari server_name
dan silahkan ganti garis bawah _
dengan nama domain kita :
. . .
server_name example.com www.example.com;
. . .
SIlahkankan simpan dengan menekan tombol CTRL
+ X
dan pilih Y
.
Sekarang kita periksa terlebih dahulu apakah konfigurasi server block kita benar atau ada yang masih salah, silahkan jalankan perintah :
sudo nginx -t
Setelah sintaks konfigurasi kita benar, sekarang kita bisa restart Nginx untuk memuat konfigurasi baru.
sudo systemctl reload nginx
Certbot sekarang dapat menemukan server blok yang benar dan memperbaruinya. Selanjutnya, kita akan memperbarui firewall untuk mengizinkan trafik HTTPS.
Langkah 3 - Mengizinkan HTTPS Melalui Firewall
Jika kita sudah mengaktifkan ufw
firewall, kita harus menyesuaikan pengaturan untuk memungkinkan trafik HTTPS. Untungnya, Nginx mendaftarkan beberapa profil ufw
saat instalasi.
Untuk melihat pengaturan saat ini, kita bisa jalankan perintah :
sudo ufw status
Kurang lebih kalian akan mendapatkan tampilan seperti berikut ini :
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
Untuk menambah trafik HTTPS, kita dapat mengizinkan profil Lengkap Nginx dan kemudian menghapus beberapa profil HTTP Nginx yang berlebihan:
sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'
Sekarang kita coba cek lagi pengaturannya dengan menjalankan perintah :
sudo ufw status
Kurang lebih kalian akan mendapatkan tampilan seperti berikut ini :
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)
Kita sekarang sudah siap menjalankan Certbot dan mengambil sertifikat untuk domain kita.
Langkah 4 - Memperoleh Sertifikat SSL
Untuk mendapatkan SSL Sertifikat gratis kita bisa menjalankan perintah dibawah ini :
sudo certbot --nginx -d example.com -d www.example.com
-d
merupakan nama domain kita, kita juga bisa menginstall SSL dengan banyak domain sekaligus misalnya saja seperti dibawah ini :
sudo certbot --nginx -d example.com -d www.example.com -d santrikoding.com -d www.santrikoding.com
Jika itu berhasil, certbot akan bertanya bagaimana kita ingin mengonfigurasi pengaturan HTTPS.
Output
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):
Silahkan pilih 2
untuk diredirect ke HTTPS
dan tekan ENTER
. Konfigurasi akan diperbarui, dan Nginx akan memuat ulang untuk mengambil pengaturan baru.
Certbot akan menyelesaikan dengan pesan yang memberitahukan Anda bahwa prosesnya berhasil dan tempat sertifikat Anda disimpan:
Output
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem. Your cert will
expire on 2017-10-23. 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
Langkah 5 - Memverifikasi Pembaruan Otomatis Certbot
SSL Sertifikat yang sudah di pasang di domain kita akan berlaku selama 90 hari
saja. Maka setiap 90 hari
kita harus melakukan pembaruan SSL Sertifikat.
Akan tetapi jangan kawatir, disini kita akan membuat SSL Sertifikat kita bisa otomatis memperbarui tanpa harus kita menjalankan ulang. silahkan jalankan perintah dibawah ini :
sudo certbot renew --dry-run
Jika perintah diatas dijalankan dan kita tidak menemukan pesan apapun, berarti itu sudah berhasil. Dan biasanya jika pembaruan SSL Sertifikat yang gagal akan otomatis mengirimkan pesan ke email kita dan mempertingatkan ketika sertifikat kita akan segera kadaluwarsa.
Kesimpulan
Dalam tutorial ini, kita belajar menginstal Let's Encrypt certbot, mengunduh sertifikat SSL untuk domain kita, mengkonfigurasi Nginx untuk menggunakan sertifikat ini, dan mengatur pembaruan sertifikat otomatis.
Jika kalian memiliki pertanyaan lebih lanjut tentang penggunaan Certbot, silahkan kalian bisa menyakannya di kolom komentar.
Terima Kasih
sumber : https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04