Membuat Sertifikat SSL Gratis dengan Let’s Encrypt

Membuat Sertifikat SSL Gratis dengan Let's Encrypt Cover

Membuat Sertifikat SSL Gratis dengan Let’s Encrypt pada artikel ini menjelaskan tentang Sertifikat SSL dan bagaimana cara membuatnya secara gratis.

Intro

Let’s Encrypt adalah otoritas sertifikat atau Certificate Authority (CA) gratis, otomatis, dan terbuka yang dipersembahkan oleh Internet Security Research Group (ISRG) nirlaba untuk Anda 1. Let’s Encrypt memberikan/menerbitkan sertifikat X.509 untuk enkripsi Secure-Socket Layer/Transport Layer Security (SSL/TLS) atau umumnya disebut sertifikat SSL dan dengannya Anda dapat mengamankan komunikasi dan transaksi data antara Client-Server.

Sertifikat SSL dipasang dan digunakan pada webserver sehingga menjadikan transaksi data melalui protokol SSL/TLS. Saat Client mengakses website pada Server, data tersebut akan dienkripsi (encrypted) melalui protokol SSL/TLS, karenanya mencegah hacker untuk mencuri data saat proses komunikasi dan transaksi Client-Server terjadi.

Untuk melindungi data sensitif, pakar keamanan mengembangkan protokol standar baru untuk mengirim dan menerima lalu lintas Internet: Transport Layer Security (TLS). Ini didahului oleh Secure Sockets Layer (SSL) tetapi sekarang sebagian besar telah digantikan oleh TLS2.

Let’s Encrypt memiliki batasan untuk membuat atau issued sertifikat SSL. Berikut batasannya:

  • Jika dalam proses pembuatan sertifikat jika terjadi kegagalan yaitu “Failed Validation”, maka pada kegagalan tersebut memiliki batas 5 failures per account, per hostname, per hour3.
  • Untuk maksimum pembuatan atau issued sertifikat SSL per FQDN (Fully Qualified Domain Name) adalah 5 kali dalam seminggu. Misal Anda membuat sertifikat untuk domain (www.domainsaya.com, domainsaya.com) maka tersisa 4 kali lagi Anda dapat membuat sertifikat dalam 1 minggu tersebut4.

Let’s Encrypt menerbitkan sertifikat SSL berlaku hanya 90 hari, jika lewat dari itu akan expired sehingga harus dibuat atau generate kembali sertifikat yang baru.

Sertifikat SSL dapat dibuat untuk single domain atau domain (Wildcard SSL).

  • Single Domain SSL, jika Anda memiliki 2 buah domain (main domain + 1 subdomain) misal kardus.com dan beli.kardus.com. Lalu Anda telah membuat sebuah sertifikat SSL single domain untuk domain kardus.com, maka subdomain beli.kardus.com tidak dapat menggunakan sertifikat tersebut alias harus membuat satu lagi untuk beli.kardus.com.
  • Wildcard SSL, tidak seperti Single Domain SSL, dengan Wildcard SSL Anda dapat menggunakan satu buah sertifikat SSL untuk main domain dan subdomain-nya juga. Contoh jika Anda memiliki 3 domain (main domain + 2 subdomain) misal plastik.com, beli.plastik.com, jual.plastik.com. Lalu Anda membuat sebuah sertifikat Wildcard SSL, sertifikat tersebut dapat digunakan untuk ke 3 domain tersebut yaitu main domain dan subdomain-nya.

Berikut lanjut langkah-langkah membuat Sertifikat SSL Gratis dengan Let’s Encrypt.

Instalasi Certbot

Pertama install package certbot yang akan digunakan untuk generate sertifikat SSL dari Let’s Encrypt. Berikut perintah instalasi sesuai dengan OS Linux yang digunakan.

Ubuntu/Debian

sudo apt-get update && sudo apt-get install certbot

CentOS 7

sudo yum -y install epel-release
sudo yum -y install certbot

CentOS 8

sudo dnf -y install epel-release
sudo dnf -y install certbot

Generate Serifikat dan Validasi

Setelah memasang certbot lanjut proses generate sertifikat. Terdapat 2 jenis perintah untuk men-generate sertifikat dengan certbot yaitu perintah untuk Staging Environment dan Production Environment.

Staging Environment

Untuk tujuan development testing seperti testing CI/CD gunakan flag –test-cert (untuk lengkapnya klik disini), dikarenakan Let’s Encrypt memiliki aturan ketat dalam quota pembuatan, sehingga disarankan untuk eksekusi perintah generate sertifikat SSL dalam versi Staging. Berikut perintahnya:

sudo certbot certonly --manual --preferred-challenges dns --test-cert

Production Environment

Untuk tujuan production/live, jika versi staging lolos pengujian dan siap dinaikan (go live) maka jalankan perintah berikut untuk membuat sertifikat SSL:

sudo certbot certonly --manual --preferred-challenges dns

Setelah menjalankan perintah generate sertifikat SSL Anda akan diminta untuk mengisi beberapa informasi, yaitu:

  • Email = Isikan dengan email Anda
  • Konfirmasi Term of Service = Isikan dengan A
  • Konfirmasi Offering news update = Isikan dengan Y
  • Domain = Isikan dengan domain Anda
  • Logging The IP SSL Requester = Isikan dengan Y
  • Konfirmasi Domain (DV) 

Note:

Pada tahap pengisian domain, jika ingin membuat sebuah sertifikat SSL Wildcard maka isikan dengan *.domainanda.com. Namun jika hanya ingin single domain maka cukup isikan domainnya langsung tanpa simbol wildcard, contoh domainanda.com atau admin.domainanda.com

Berikut contoh pengisian data proses generate sertifikat SSL:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.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

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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: Y
Please enter in your domain name(s) (comma and/or space separated)  (Enter 'c'
to cancel): *.domainanda.com
Obtaining a new certificate
Performing the following challenges:
dns-01 challenge for domainanda.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NOTE: The IP of this machine will be publicly logged as having requested this
certificate. If you're running certbot in manual mode on a machine that is not
your server, please ensure you're okay with that.

Are you OK with your IP being logged?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.domainanda.com with the following value:

dpPozFEwSvnAjHg3iYFZvpY-2NBbXmDCXXDAGATDKYo

...

Setelah sampai tahap “Please deploy a DNS TXT record under the name”, Jangan Press Enter terlebih dahulu, tetapi beralih ke Dashboard Management Domain lakukan penambahan subdomain untuk proses Domain Validation (DV).

Domain Validation (DV)

Domain Validation adalah tahap di mana Let’s Encrypt melakukan validasi domain dengan meminta Anda untuk menambahkan satu subdomain baru sesuai dengan konfigurasi yang diberikan oleh Let’s Encrypt. Berikut contoh konfigurasi untuk validasi domain:

Please deploy a DNS TXT record under the name
_acme-challenge.domainanda.com with the following value:

dpPozFEwSvnAjHg3iYFZvpY-2NBbXmDCXXDAGATDKYo

Buka Dashboard Management Domain kemudian buat subdomain dengan konfigurasi:

  • Nama : _acme-challenge
  • Type : TXT
  • TTL : 300 atau 5 min (Optional)
  • RDATA / Value : dpPozFEwSvnAjHg3iYFZvpY-2NBbXmDCXXDAGATDKYo

Membuat Sertifikat SSL Gratis dengan Let's Encrypt Tambah Record Domain

Note:

Terdapat proses propagasi setiap penambahan subdomain baru. Proses bisa cepat atau lama (1×24). Untuk pengecekan propagasi dapat gunakan tools website berikut.

Setelah penambahan subdomain, lakukan pengecekkan subdomain via terminal dengan perintah:

dig -t txt +short _acme-challenge.domainanda.com
“dpPozFEwSvnAjHg3iYFZvpY-2NBbXmDCXXDAGATDKYo”

Jika output adalah value TXT domain validasi, kembali ke terminal Generate sertifikat SSL kemudian Press Enter. Berikut output Generate sertifikat SSL berhasil:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/domainanda.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/domainanda.com/privkey.pem
   Your cert will expire on 2023-07-23. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
...

Dari output tersebut terdapat informasi lokasi Sertifikat, Private Key dan tanggal Kadaluarsa sertifikat SSL.

  • /etc/letsencrypt/live/domainanda.com/fullchain.pem = Sertifikat
  • /etc/letsencrypt/live/domainanda.com/privkey.pem = Private Key
  • 2023-07-23 = Tanggal Kadaluarsa

Note:

Ekstensi file Sertifikat dan Private Key adalah .pem. Ekstensi tersebut dapat diubah menjadi .crt (Sertifikat) dan .key (Private Key) hanya dengan me-rename nya lalu diubah & save.

Konklusi

Let’s Encrypt adalah solusi gratis, otomatis, dan terbuka untuk mendapatkan sertifikat SSL/TLS, memungkinkan pengguna untuk mengamankan komunikasi dan transaksi data di webserver. Dengan batasan tertentu, seperti jumlah maksimum sertifikat per minggu dan masa berlaku sertifikat selama 90 hari, Let’s Encrypt memberikan fleksibilitas dalam melindungi data sensitif secara efektif. Proses pembuatan sertifikat melibatkan instalasi Certbot dan verifikasi melalui Domain Validation, yang membutuhkan penambahan subdomain sesuai konfigurasi. Dengan langkah-langkah yang tepat, pengguna dapat dengan mudah mendapatkan sertifikat SSL gratis dari Let’s Encrypt, memberikan perlindungan yang diperlukan terhadap kebocoran data.

Referensi

  1. https://letsencrypt.org/docs/faq/
  2. https://proton.me/blog/tls-ssl-certificate
  3. https://community.letsencrypt.org/t/too-many-failed-authorizations-recently/211864/2
  4. https://support.cloudways.com/en/articles/5129566-let-s-encrypt-ssl-certificates-limitations

Add a Comment

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