Cara Install SSL Let’s Encrypt di Nginx dengan OS Debian 10

Tanya

VPS saya pake Nginx, OS nya Debian 10, saya punya domain example.com, saya ingin agar domain saya itu dipasang SSL dari Let’s Enccrypt. Mohon dapat dipandu.

Jawab

Kita pastikan dulu, apakah betul OS nya adalah Debian 10, caranya jalankan perintah ini

lsb_release -a

Kalo muncul hasil seperti ini…

…itu menunjukkan OS nya betul Debian 10.

Sedangkan untuk mengetahui apakah pake Nginx, jalankan 2 perintah ini

apt install net-tools -y

Lanjut dengan

netstat -ptuln

Hasilnya

Setelah memiliki tampilan sama (ada tulisan “nginx” dan “80”), baru ke proses instalasi SSL.

Instalasi SSL Let’s Encrypt

Selanjutnya kita akan mulai proses penginstallan Let’s Encrypt, kita akan memanfaatkan Certbot.

Sebelum kita install Certbot, kita harus install dulu beberapa aplikasi pendukung Certbot. Silahkan jalankan perintah ini (copy-paste aja):

apt-get install \
     python3-acme \
     python3-certbot \
     python3-mock \
     python3-openssl \
     python3-pkg-resources \
     python3-pyparsing \
     python3-zope.interface \
     -y

Setelah berhasil, lanjut install si Certbot nya, jalankan perintah ini:

apt-get install python3-certbot-nginx -y

Pemasangan SSL

Lanjut, kita akan pasang SSL di domain example.com. Kalo domain-nya bukan example.com silahkan ganti, sesuaikan!

certbot \
     --redirect \
     --agree-tos \
     --register-unsafely-without-email \
     --nginx \
     -d example.com -d www.example.com

Tunggu proses nya sampe nanti melihat tampilan yang seperti ini

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for example.com
http-01 challenge for www.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/example.com
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/example.com
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/example.com
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/example.com

-------------------------------------------------------------------------------
Congratulations! You have successfully enabled https://example.com and
https://www.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=example.com
https://www.ssllabs.com/ssltest/analyze.html?d=www.example.com
-------------------------------------------------------------------------------

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2019-08-13. 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"
 - 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

Selesai. SSL sdh terpasang di domain example.com, silahkan akses web nya, harusnya sdh ter-redirect. Clear cache / refresh dulu browser nya kalo belum HTTPS.

Pemasangan SSL untuk Domain Lainnya

Kalo misal di VPS nya terinstall beberapa domain, maka utk install SSL di domain lainnya, tinggal jalankan perintah certbot di atas, misal domain lainnya adalah example.net, maka tinggal diganti saja sebagai berikut.

certbot \
     --redirect \
     --agree-tos \
     --register-unsafely-without-email \
     --nginx \
     -d example.net -d www.example.net

Pemasangan SSL untuk Sub Domain

Kalo untuk sub domain, maka di dalam perintahnya bukan berisi -d example.com -d www.example.com tapi berisi nama sub domain. Misal sub domainnya itu subdomainku.example.com, maka perintahnya jadi.

certbot \
     --redirect \
     --agree-tos \
     --register-unsafely-without-email \
     --nginx \
     -d subdomainku.example.com

Install Plugin SSL

Bagi pengguna WordPress, sangat disarankan untuk install plugin ReallySimpleSSL, supaya semua element yang masih HTTP, diganti jadi HTTPS. Install, aktifkan, lalu klik ini (akan log out dari wp-admin)

Anda Pengguna Cloudflare?

Bagi pengguna Cloudflare, ketika SSL nya sdh ON, ada yang harus dilakukan, silahkan pilih yang paling sreg.

Opsi 1 – Jika webnya ingin menggunakan fitur security dan ingin mendapat optimasi yang diberikan Cloudflare, silahkan login ke Cloudflare, pilih domainnya, ke menu Crypto, link nya (ganti example.com)

https://www.cloudflare.com/a/crypto/example.com

Di sana ada pengaturan SSL: Off, Flexible, Full, dan Full (strict). Silahkan atur agar menjadi Full (strict).

Hanya saja SSL yang muncul bukanlah SSL nya Let’s Encrypt, melainkan SSL Cloudflare. SSL yang muncul “SSL jamaah”, karena SSL nya digunakan oleh domain2 lain.

Opsi 2 – Kalo SSL yang muncul ingin SSL nya Let’s Encrypt, maka masuk ke menu DNS, link nya (ganti example.com)

https://www.cloudflare.com/a/dns/example.com

Di sana ada icon awan berwarna orange. Silahkan di klik icon itu, sehingga jadi abu2.

Dengan demikian SSL yang muncul keliatan lebih prestise karena hanya dimiliki domain example.com saja. Contoh untuk salah satu domain saya https://jasa.hardinal.com/

Selamat mencoba.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.