Skip to content

Instantly share code, notes, and snippets.

@tajidyakub
Created November 4, 2017 10:12
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save tajidyakub/c660c6077b7b55f4195788ef68eb6d6b to your computer and use it in GitHub Desktop.
Save tajidyakub/c660c6077b7b55f4195788ef68eb6d6b to your computer and use it in GitHub Desktop.
Menggunakan certbot untuk menerbitkan SSL Certificate dari yang di signed oleh Let's Encrypt di localhost untuk diinstall ke cPanel server

SSL Certificate dari Let's Encrypt untuk diinstall di cPanel

Instalasi certbot dan opsi yang perlu diperhatikan

Instalasi certbot menggunakan homebrew dan melihat opsi yang disediakan ketika eksekusi certbot.

$ brew install certbot
$ certbot --help
certbot [SUBCOMMAND] [options] [-d DOMAIN] [-d DOMAIN]

Opsi yang perlu diperhatikan adalah sebagai berikut;

SUBCOMMAND certonly 
options -m
options -d
options --manual
  • certonly hanya mengenerate certificate tidak melakukan instalasi certificate secara otomatis, hal ini akan kita lakukan secara manual di cPanel
  • -m alamat E-mail yang digunakan untuk melakukan registrasi ke Let's Encrypt
  • -d nama domain yang diinclude ke dalam certificate yang akan digenerate dalam hal ini disesuaikan dengan standard domain di cPanel yaitu namadomain.com, www.namadomain.com dan mail.namadomain.com

Proses generate melalui commmand sebagai berikut;

$ sudo certbot certonly --manual -m alamatemail@gmail.com -d domain.com -d www.domain.com -d mail.domain.com

Jalankan dengan menggunakan sudo karena certbot membutuhkan akses ke dalam /etc/letsencrypt untuk menyimpan certificate yang digenerate.

Verifikasi oleh Let's Encrypt

Proses verifikasi akan dilakuan pada saat mengenerate certificate menggunakan certbot tersebut. Karena certbot deksekusi secara manual maka kita harus membuat file tertentu di dalam root direktori web terhadap domain yang ingin kita buatkan SSL certificate nya.

  • Buat sub-direktori .well-known/acme-challenge di dalam root web direktori, dalam hal ini public_html
  • Pastikan bahwa path http://domain.com/.well-known/acme-challenge/ dapat diakses oleh publik, karena file verifikasi akan diletakkan di dalam path ini untuk dikunjungi oleh Let's Encrypt

Buat yang file yang dibutuhkan untuk verifikasi baik melalui file manager cPanel maupun FTP di dalam sub-direktori tersebut di atas, judul file dan isi dari file tersebut akan diinformasikan pada saat eksekusi certbot berjalan.

Contoh judul file dan isi file yang diminta adalah sebagai berikut;

-------------------------------------------------------------------------------
Create a file containing just this data:
jC4XT3jHKqzPXUpB89urFaXitwwlgsa1BM-117eyxxx.5Uxmt39cFSoJAIH_gYwaIT4SxHUy9_DyNHAcz8buxxx
And make it available on your web server at this URL:
http://namadomain.com/.well-known/acme-challenge/jC4XT3jHKqzPXUpB89urFaXitwwlgsa1BM-117eyxxx
-------------------------------------------------------------------------------
Press Enter to Continue
-------------------------------------------------------------------------------
Create a file containing just this data:
VbVsnLbXszH2YRa18wY32xJJkgWxP3FEZX2Uz0joxxx.5Uxmt39cFSoJAIH_gYwaIT4SxHUy9_DyNHAcz8buxxx
And make it available on your web server at this URL:
http://mail.namadomain.com/.well-known/acme-challenge/VbVsnLbXszH2YRa18wY32xJJkgWxP3FEZX2Uz0joxxx
-------------------------------------------------------------------------------
Press Enter to Continue
-------------------------------------------------------------------------------
Create a file containing just this data:
G9KLahiayTa7gLSAUs1MIMJ-pjF2WMdvzsH-rPX1xxx.5Uxmt39cFSoJAIH_gYwaIT4SxHUy9_DyNHAcz8buxxx
And make it available on your web server at this URL:
http://www.namadomain.com/.well-known/acme-challenge/G9KLahiayTa7gLSAUs1MIMJ-pjF2WMdvzsH-rPX1xxx
-------------------------------------------------------------------------------

Perhatikan bahwa kita diminta membuat tiga buah file karena kita menginclude 3 domain ke dalam certificate tersebut, apabia proses verifikasi gagal maka certificate tidak akan diterbitkan, jika hal ini terjadi berkali-kali host kita (IP Address komputer kita) akan diban sementara oleh Let's Encrypt.

Agar proses verifikasi berhasil perhatikan hal-hal sebagai berikut;

  • Permission dari folder .well-know/acme-challenge/
  • Keberadaan sub-domain yang diinclude yaitu mail dan www biasanya sudah otomatis pada skenario instalasi cPanel
  • Nama file dan isi file yang dibuat sesuai dengan yang diminta

Instalasi Certificate ke Server cPanel

Ketika proses verifikasi selesai dilakukan, certificate yang valid akan disimpan di dalam direktori /etc/letsencrypt/live/namadomain.com/

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

Yang kita butuhkan untuk melakukan instalasi di cPanel server adalah sebagai berikut;

  • /etc/letsencrypt/live/namadomain.com/cert.pem file certificate (CRT)
  • /etc/letsencrypt/live/namadomain.com/privkey.pem file private key (KEY)
  • /etc/letsencrypt/live/namadomain.com/chain.pem file chain dari certificate authority (CABUNDLE)

Instalasi certificate di server cPanel dapat dilakukan melalui menu SSL/TLS > Manage SSL Sites > Install Certificate, Copy isi dari tiga file tersebut di atas sesuai dengan kolom yang disediakan melalui bagian Install an SSL Website, jangan lupa dipilih domainnya terlebih dahulu.

Links :

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment