Let’s Encrypt menggunakan protokol ACME untuk memverifikasi bahwa Anda mengontrol nama domain tertentu dan menerbitkan sertifikat yang dibutuhkan.
APA ITU PROTOKOL ACME:
Protokol ACME (Automated Certificate Management Environment) awalnya dikembangkan oleh Internet Security Research Group untuk CA publiknya, dengan nama Let’s Encrypt.
ACME adalah yang memfasilitasi seluruh model bisnis Let’s Encrypt, yang memungkinkannya untuk menerbitkan sertifikat SSL tervalidasi domain selama 90 hari yang dapat diperbarui dan diganti tanpa perlu repot-repot oleh pemilik domain atau pemilik situs web.
Pada bulan Maret 2019, protokol ACME akhirnya diterbitkan sebagai standar internet (RFC 8555) dan mulai terlihat banyak CA komersial mendukungnya. Termasuk salah satu mitra terbesar Let’s Encrypt, Sectigo (sebelumnya Comodo CA).

BAGAIMANA CARA KERJA PROTOKOL ACME:
Setelah Anda menginstal client ACME dan dikonfigurasi dengan benar, yang sebenarnya cukup sederhana. tetapi untuk saat ini perlu diingat bahwa selama proses verifikasi yang berlangsung saat agen dipasang, pasangan kunci akan dibuat untuk digunakan oleh agen dan CA. Kunci tersebut terkadang disebut sebagai “kunci otorisasi”.
Untuk mendapatkan sertifikat digital yang diterbitkan, agen hanya perlu membuat CSR (certificate Sign Request) untuk domain yang diinginkan dan mengirimkannya ke CA. Ini dilakukan melalui protokol HTTPS.

  • Agen akan membuat CSR untuk domain yang di inginkan contoh agusprasetia.com.
  • Agen menandatangani kunci publik yang dihasilkan bersama CSR dengan kunci privat yang dimilikinya.
  • Agen menandatangani seluruh CSR dengan kunci pribadinya sendiri (kunci otorisasi yang dihasilkan selama konfigurasi awal)
  • CA memverifikasi tanda tangan dan menerbitkan sertifikat
  • Agen menerima sertifikat dan menginstalnya di domain yang sama dengan domain yang di request.

lebih jelasnya bisa di lihat digambar dibawah ini.

Proses penerbitan sertificate

Untuk mendapatkan sertifikat Let’s Encrypt, Anda harus memilih perangkat lunak klien ACME untuk digunakan.
Dengan banyaknya client ACME yang dikembangkan oleh pihak ketiga. Let’s Encrypt tidak bisa mengontrol atau meninjau secara langsung client ACME pihak ketiga tersebut dan tidak dapat memberikan jaminan apa pun tentang keamanan atau keandalan mereka.

Kali ini saya akan mencoba menggunakan klient ACME yang di rekomendasikan oleh pengembang Let’s Encrypt yaitu CERTBOT acme client.
Tidak seperti di sistem operasi linux yang sudah menyertakan program-program pendukung untuk menjalankan certboot ini, diwindows sedikit lebih sulit untuk menginstall dan membuat certbot client ini bekerja sebagaimana mestinya.
Selain itu untuk mengintegrasikan ke dalam IIS webserver ada langkah-langkah yang harus dilakukan dengan benar.


Untuk instalasinya sendiri saya membuatnya menjadi 2 cara yaitu cara sulit/The hardway dan cara mudah/The easyway. kenapa begitu? akan saya jelaskan di akhir tulisan.

INSTALASI CERTBOT CARA SULIT / THE HARD WAY

Untuk cara ini kita diharus nya memiliki beberapa program-program yang dibutuhkan untuk menjalankan certbot client, dan kesemuanya bisa kita dapatkan jika kita menginstall cygwin, apa lagi itu cygwin? cygwin adalah seperangkat koleksi alat-alat GNU dan Open Source yang menyediakan fungsionalitas yang mirip dengan distribusi Linux yang berjalan di sistem operasi Windows.
Setelah kita mengunduh setup-x86_64.exe dan menginstalnya selanjutnya install juga software yang lainnya seperti:

  • python36-pip
  • python36-devel
  • gcc-core
  • gcc-objc
  • libffi-dev
  • libssl-devel

Dengan mengetikan nama program di atas contohnya python36-pip ke dalam kotak pencarian di menu setup-x86_64.exe kemudian pilih versi yang di inginkan di kolom new seperti gambar di bawah ini.

certbot dependencies

Upgrade program pip ke versi terbaru dengan menjalankan baris perintah dibawah di dalam Cygwin64 Terminal.

/usr/bin/python3.6 -m pip install --upgrade pip

Kompilasi program python certbot menggunakan pip.

/usr/bin/pip3 install certbot

Check versi certbot hasil kompilasi.

$ /usr/bin/certbot --version
certbot 1.9.0

INSTALASI CERTBOT CARA MUDAH / THE EASY WAY

Sebetulnya certbot secara official sudah di rilis walau masih versi beta, link unduhan tersedia di certbot-beta-installer-win32.exe.
Lakukan instalasi dan ikutin langkah-langkah di wizard nya, program default akan terinstal di C:\Program Files(x86) dan certbot sudah terdaftar di PATH windows sehingga jika kita mengetikan certbot di command prompt maupun powershell terminal certbot sudah bisa berjalan tanpa masalah.

PROSES PEMBUATAN SERTIFIKAT SSL/TLS

Jalankan perintah dibawah ini di cygwin terminal, powershell atau menggunakan perintah di CMD.exe, terserah pengguna menurut kenyamanan masing-masih saja.

$ iisreset /stop
$ /usr/bin/certbot certonly --standalone --agree-tos --keep-until-expiring --no-self-upgrade --test-cert \
-m [email protected] -d agusprasetia.com,www.agusprasetia.com \
$ iisreset /start

certonly artinya certbot hanya akan membuat sertifikat saja tanpa menginstal ke dalam sistem.
–standalone artinya cerbot akan menjalankan internal webserver untuk proses verifikasi sertifikat dan A record DNS
–agree-tos artinya kita setuju dengan semua policy dari Let’s encrypt.
–keep-until-expiring artinya jika sertifikat masih berlaku jangan lakukan update.
–no-self-upgrade biasanya berlaku di linux, artinya jangan upgrade walaupun ada versi terbaru dari certbot.
-d harus di isi oleh nama domain dan atau subdomain yang akan di proses pembuatan/pembaharuan sertifikat silahkan gunakan coma (,) jika banyak domain yang akan di request.
iisreset perintah untuk mematikan atau menjalankan IIS service.

Lokasi certifikat berbeda untuk versi cara mudah berada di C:\Certbot\live\agusprasetia.com.
Dan lokasi untuk versi cara sulit berada di C:\cygwin64\etc\letsencrypt\live\agusprasetia.com


SERTIFIKAT UNTUK IIS WEBSERVER.

IIS Server membutuhkan sertifikat dengan format pfx untuk bisa di import menggunakan Microsoft management Console (MMC.EXE).
Dengan tool openssl kita bisa mengkonversikan PEM format ke PFX,lakukan di cmd.exe atau powershell perintah berikut.

# openssl pkcs12 -export -out agusprasetia.com.pfx -inkey privKey1.pem -in cert1.pem -certfile chain1.pem
WARNING: can't open config file: /etc/ssl/openssl.cnf
Loading 'screen' into random state - done
Enter Export Password: ENTER
Verifying - Enter Export Password: ENTER
Hasil konversi

Kembali lagi mengapa saya membuat cara yang sulit jika ada cara yang mudah?.

  • Dengan menggunakan cygwin saya akan memiliki certbot, openssl, python dalam satu paket tidak terpisah-pisah dan proses pembaharuan program lebih mudah menggunakan cygwin setup.
  • Dengan cygwin saya bisa mengekplor tool GNU dan opensource software lainnya dengan lebih teritegrasi.
  • Serasa bekerja di lingkungan linux,karena saya lebih nyaman menggunakan command linux/unix.
  • Pilihan, disini kita punya pilihan yg bisa di sesuaikan dengan keinginan dan kenyamanan kita masing-masing mau yang mudah mau yang sulit, silahkan saja. 🙂

Leave a Reply

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