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

Tanya

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

Jawab

I. Cek Webserver, Nginx atau Apache

Pertama, pastikan dulu apakah VPS Anda menggunakan webserver Nginx atau Apache

Untuk mengetahui apakah pake Nginx / Apache, jalankan 2 perintah ini

apt update && apt install net-tools -y

Lanjut dengan

netstat -ptuln

Hasilnya kalo yang Nginx ada tulisan “nginx“-nya:

Sedangkan kalo yang Apache nanti akan ada tulisan “apache2

II. Instalasi SSL Let’s Encrypt

Langkah kedua yaitu 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

III. Instalasi Certbot

Langkah ketiga, lanjut install si Certbot nya.

Di tahap pertama, Anda sudah pastikan webserver nya apakah Nginx atau Apache.

Untuk yang pake Nginx, lanjut jalankan perintah ini.

apt-get install python3-certbot-nginx -y

Untuk yang pake Apache, lanjut jalankan perintah ini:

apt-get install python3-certbot-apache -y

IV. Pemasangan SSL

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

Untuk yang pake Nginx, perintahnya adalah

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

Untuk yang pake Apache, perintahnya adalah

certbot \
     --redirect \
     --agree-tos \
     --register-unsafely-without-email \
     --apache \
     -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 (Ingat sesuaikan nginx dan apache nya ya)

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.