Bagaimana cara instalasi SSL gratis yang didapat dari Let’s Encrypt pada VPS dengan menggunakan Zpanel/Sentora.

Instalasi SSL Gratis Di Sentora

Artikel ini merupakan kelanjutan dari artikel Cara Mendapatkan SSL gratis dari Let’s Encrypt. Untuk itu, sebaiknya terlebih dahulu membaca artikel SSL gratis dari Let’s Encrypt sebelum melanjutkan membaca artikel ini.

Pengguna VPS yang menggunakan Zpanel atau Sentora sebagai web hosting control panel ada beberapa hal yang perlu disiapkan terlebih dahulu.

Pastikan mod_ssl sudah terinstall di VPS. Lokasi ada di /etc/httpd/conf.d/ssl.conf. Jika belum install terlebih dahulu dengan melakukan perintah berikut:

yum install mod_ssl

Setelah mod_ssl tersedia, buka file konfigurasi Apache di etc/httpd/conf.d/ssl.conf, kemudian tambahkan tanda pagar pada Listen 443 menjadi:

# When we also provide SSL we have to listen to the

# the HTTPS port in addition.

# Listen 443

Setelah selesai, masuk ke panel kontrol VPS.

Dari menu pilih Admin -> klik Module Admin -> Apache Config

Module Admin VPS sentora

Dari halaman menu Apache Config -> Scroll ke bawah dan pilih Override a Virtual Host Setting. Pilih domain yang akan di konfigurasi untuk ditambahkan SSL.

menu Apache Config

Selanjutnya setelah memilih domain dan klik select Vhost akan muncul halaman konfigurasi SSL.

Langkah berikutnya adalah:

Pada Port Override isikan dengan 443

Centang Forward Port 80 to Overriden Port.

Isikan konfigurasi berikut pada Custom Entry:.

SSLEngine on

SSLProtocol ALL -SSLv2 -SSLv3

SSLHonorCipherOrder On

SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS

SSLCertificateFile /etc/letsencrypt/live/domain.com/cert.pem

SSLCertificateKeyFile /etc/letsencrypt/live/domain.com/privkey.pem

SSLCertificateChainFile /etc/letsencrypt/live/domain.com/chain.pem

# Keeping bellow for future upgrades.

# Requires Apache >= 2.4

# SSLCompression off

Catatan: ganti nama sertifikat yang telah dibuat sebelumnya. Nama SSL ada di folder /etc/letsencrypt/live dengan nama domain pertama pada opsi domains di file .ini misal domain.com.

Ini contoh untuk SSL domain namablogku.com

Override a Virtual Host Setting

Lakukan ke semua domain yang ingin dipasangi SSL dengan kembali memilih domain di Override a Virtual Host Setting. Dan lakukan seperti langkah di atas tanpa perlu mengganti nama SSL-nya.

Setelah selesai semua, paksa supaya Zpanel atau Sentora VPS melakukan perubahan segera:

# Zpanel

php -q /etc/zpanel/panel/bin/daemon.php

# Sentora

php -q /etc/sentora/panel/bin/daemon.php

# Restart

Apache service httpd restart

Tunggu. Jika VPS dengan dengan banyak blog/artikel proses bisa lama.

Auto-renew Let’s Encrypt

Masa berlaku dari SSL dari Let’s Encrypt hanya 90 hari. Namun kita bisa membuat script bash yang dipadukan dengan cron untuk memperpanjang SSL secara otomatis jika sudah akan expire.

Pertama buat script bash-nya:

vi /etc/letsencrypt/le-renew

Isikan dengan script berikut:

#!/bin/bash

web_service=’httpd’

config_file=”/etc/letsencrypt/domain.ini”

le_path=’/opt/letsencrypt’

exp_limit=30;

if [ ! -f $config_file ]; then

    echo “[ERROR] config file does not exist: $config_file”

    exit 1;

fi

domain=`grep “^\s*domains” $config_file | sed “s/^\s*domains\s*=\s*//” | sed ‘s/(\s*)\|,.*$//’`

cert_file=”/etc/letsencrypt/live/$domain/fullchain.pem”

if [ ! -f $cert_file ]; then

    echo “[ERROR] certificate file not found for domain $domain.”

fi

exp=$(date -d “`openssl x509 -in $cert_file -text -noout|grep “Not After”|cut -c 25-`” +%s)

datenow=$(date -d “now” +%s)

days_exp=$(echo \( $exp – $datenow \) / 86400 |bc)

echo “Checking expiration date for $domain…”

if [ “$days_exp” -gt “$exp_limit” ] ; then

    echo “The certificate is up to date, no need for renewal ($days_exp days left).”

    exit 0;

else

    echo “The certificate for $domain is about to expire soon. Starting webroot renewal script…”

    echo “Stopping $web_service”

    service $web_service stop

    $le_path/letsencrypt-auto certonly –standalone –agree-tos –renew-by-default –config $config_file

    echo “Starting $web_service”

    service $web_service start

    echo “Renewal process finished for domain $domain”

    exit 0;

fi

Setelah disimpan pastikan script tersebut bisa dieksekusi:

chmod +x /etc/letsencrypt/le-renew

Sekarang kita hanya perlu membuat cron yang berjalan satu minggu sekali untuk mengecek apakah SSL sudah mau expire dan jika SSL akan expire kurang dari 30 hari maka otomatis script bash akan me-renew sertifikatnya.

# Membuka crontab

crontab -e

# Isikan baris berikut

0 0 * * 0 /etc/letsencrypt/le-renew > /var/log/le-renew.log 2>&1

Untuk mengetestnya kita eksekusi saja script bashnya. Contoh outputnya sebagai berikut:

Checking expiration date for example.com…

The certificate is up to date, no need for renewal (89 days left).

Memang ribet untuk pertama kalinya, apalagi bagi yang belum terbiasa menggunakan VPS atau OS Linux. Tapi jika ada kemauan pasti ada jalan.

Awalnya saya pun juga bingung, namun akhirnya 8 blog yang ada di VPS dapat menggunakan https setelah dipasang SSL dari Let’s Encrypt.

 

Instalasi SSL Gratis Di VPS Dengan Zpanel Atau Sentora

Bagikan:

Kang Andre

Blogger amatir yang mencoba belajar ngeblog dan berbagi pengalaman lewat artikel online

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *