HTTPD dan CertBot di OpenBSD

  • June 15, 2018
  • Kurnia Ramadhan
  • bsd

Malam ini saya mau nulis tentang HTTPD dan CertBOT di OpenBSD, yaitu cara membuat website yang kita miliki memiliki fitur SSL dengan memanfaatkan Free SSL dari Letsencrypt, sehingga jalur akses ke website kita berada pada tingkat security yang tinggi dengan SSL tersebut.

Certbot

Sebelumnya saya telah mencoba banyak metode untuk mengaktifkan fitur SSL di OpenBSD, dan hasilnya banyak gagalnya hehehe, sampai akhirnya ternyata ada cara mudah untuk mengaktifkan fitur SSL ini hanya dengan beberapa perintah dan konfigurasi yang simpel.

Di artikel sebelumnya kita sudah tahu bagaimana mengaktifkan HTTPD untuk membuat Webserver, nah di artikel ini ada aplikasi bernama CertBOT. Aplikasi ini digunakan untuk merequest SSL Letsencrypt dengan cara yang sangat mudah dan gak bikin pusing kepala. Kita langsung mulai aja ya hehehe

Instalasi Aplikasi CertBOT

Sebelum memulai ada baiknya kita menginstall aplikasi CertBOT ini ke dalam server kita, dengan cara:

pkg_add certbot

Request SSL Letsencrypt

Langkah selanjutnya adalah merequest SSL Letsencrypt yang gratis itu sehingga nantinya kita akan mendapatkan sertifikat SSL yang akan kita gunakan di domain atau subdomain nantinya. Caranya sangat mudah, cukup dengan 1 baris perintah saja seperti berikut ini:

certbot certonly --standalone --preferred-challenges http -d mybsd.karangan.id

Contoh di atas menggambarkan bahwa kita akan merequest sertifikat SSL untuk domain “mybsd.karangan.id”. Oh ya jangan lupa untuk mematikan terlebih dahulu service HTTPD sebelum menjalankan perintah ini dengan cara sebagai berikut:

rcctl stop httpd

Konfigurasi /etc/httpd.conf

Setelah melakukan request sertifikat SSL maka langkah selanjutnya adalah melakukan konfigurasi file “/etc/httpd.conf” agar domain yang kita inginkan bisa aktif fitur SSL Letsencrypt-nya. Berikut adalah contoh konfigurasi file “/etc/httpd.conf” yang saya buat di server saya.

ext_if="egress"
types { include "/usr/share/misc/mime.types" }

server "mybsd.karangan.id" {
   listen on $ext_if port 80
   block return 301 "https://$SERVER_NAME$REQUEST_URI"
}

server "mybsd.karangan.id" {
   listen on $ext_if tls port 443
   tls  certificate "/etc/letsencrypt/live/mybsd.karangan.id/fullchain.pem"
   tls key "/etc/letsencrypt/live/mybsd.karangan.id/privkey.pem"
   directory {index "index.php" }
   root { "/htdocs/mybsd.karangan.id" }
   location "/*.php*" {
      fastcgi socket "/run/php-fpm.sock"
   }
}

Langkah selanjutnya adalah dengan melakukan proser start kembali server anda dengan cara:

rcctl start httpd

Nah biar proses renewals sertifikat *SSL dari Letsencrypt-nya berjalan otomatis, maka kita bisa memasukkan proses update sertifikat ke dalam fitur crontab di server, caranya adalah sebagai berikut:

crontab -e

Kemudian masukkan baris perintah ini:

0       *       *       *       *       /usr/local/bin/certbot renew

Dan langkah terakhir yang harus kita lakukan adalah dengan melakukan editing file “/etc/letsecnrypt/renewal/mybsd.karangan.id.conf” kemudian menambahkan konfigurasi berikut ini:

renew_hook = /etc/rc.d/httpd restart

Selesai deh, sekarang domain yang kita konfigurasi barusan sudah aktif fitur SSL dari Letsencrypt. Oh ya jangan lupa untuk mengarahkan A Record ke IP dari server anda agar proses request SSL Letsencrypt berjalan dengan sempurna.