Solusi masalah Sertifikat SSL (let’s encrypt) pada CyberPanel

Sertifikat SSL (Secure Socket Layer) merupakan protokol keamanan yang bertugas untuk mengamankan data yang dikirimkan antara server dan browser pengguna. Seiring dengan meningkatnya kebutuhan keamanan pada website, penggunaan sertifikat SSL menjadi semakin penting. Dalam CyberPanel, Let’s Encrypt adalah salah satu layanan yang digunakan untuk memasang sertifikat SSL pada website. Namun, terkadang pengguna mengalami masalah pada saat memasang sertifikat SSL Let’s Encrypt pada CyberPanel.

Beberapa masalah yang sering terjadi antara lain:

  1. Sertifikat SSL tidak terpasang dengan benar
  2. Sertifikat SSL kadaluarsa
  3. Sertifikat SSL gagal memperbarui

Untuk mengatasi masalah tersebut, berikut adalah beberapa solusi yang dapat dicoba:

  • Memastikan bahwa nama domain yang digunakan telah terdaftar dan aktif pada server anda
    Untuk memasang sertifikat SSL Let’s Encrypt pada CyberPanel, sangat penting untuk memastikan bahwa nama domain yang digunakan telah terdaftar dan aktif pada server Anda. Ini karena sertifikat SSL Let’s Encrypt memerlukan verifikasi yang harus dilakukan dengan domain yang digunakan. Salah satu masalah yang sering terjadi adalah masalah pada A Record atau alamat IP domain yang digunakan. Jika terdapat masalah pada A Record atau IP Address, maka verifikasi akan gagal dan sertifikat SSL tidak akan terpasang dengan benar. Oleh karena itu, pastikan bahwa domain yang digunakan telah terdaftar dan aktif pada server Anda dan pastikan juga bahwa A Record atau IP Address domain tersebut sudah dikonfigurasi dengan benar untuk mendukung pemasangan sertifikat SSL Let’s Encrypt pada CyberPanel. Dengan memperhatikan hal ini, maka pengguna dapat memastikan bahwa proses pemasangan sertifikat SSL Let’s Encrypt pada CyberPanel berjalan dengan baik dan website dapat diakses dengan aman dan terlindungi.

    Anda dapat melakukan check DNS anda melalui ini https://dnschecker.org/, pastikan domain www.<domain.com> dan domain.com terpasang dengan benar pada DNS anda.
  • Memperbarui CyberPanel ke versi terbaru

Pada terminal atau ssh, Gunakan Perintah berikut dapat digunakan untuk meng-upgrade ke versi terbaru.

sh <(curl https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh || wget -O - https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh)

Jika menggunakan pengguna sudo pada root, coba ini:

sudo su - -c "sh <(curl https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh || wget -O - https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh)"
  • ACME Client Verification
    ACME Client Verification adalah proses yang dilakukan oleh Let’s Encrypt untuk memastikan bahwa ACME client yang digunakan oleh pengguna adalah valid dan dapat dipercaya. Dalam artikel mengenai Let’s Encrypt pada CyberPanel, penjelasan mengenai ACME Client Verification dijelaskan secara singkat dan jelas. Pada umumnya, ACME Client Verification dilakukan melalui dua metode, yaitu HTTP-01 dan DNS-01. Metode HTTP-01 melibatkan pembuatan file yang akan diletakkan pada direktori .well-known/acme-challenge pada website yang akan diuji. Sedangkan, metode DNS-01 melibatkan pembuatan record DNS untuk domain yang akan diuji. Pada CyberPanel, pengguna dapat melakukan konfigurasi pada SSL settings dan memilih metode verifikasi yang diinginkan. Pengguna juga dapat memeriksa status verifikasi Let’s Encrypt pada menu SSL Status. Jika verifikasi gagal, pengguna dapat mengecek log file dan memperbaiki masalah yang terkait dengan verifikasi tersebut. Dengan memahami proses ACME Client Verification pada Let’s Encrypt, pengguna CyberPanel dapat melakukan konfigurasi SSL dengan lebih mudah dan memastikan sertifikat SSL yang digunakan valid dan dapat dipercaya.

    Untuk memeriksa dan memperbarui ACME Client ke versi terbaru, jalankan perintah berikut
wget -O - https://get.acme.sh | sh
  • Folder permissions
    Folder permissions adalah hal yang penting untuk diperhatikan saat mengatasi masalah sertifikat SSL Let’s Encrypt pada CyberPanel. Saat menjalankan layanan Let’s Encrypt pada CyberPanel, pengguna perlu memastikan bahwa folder yang digunakan oleh Let’s Encrypt memiliki izin akses yang cukup. Salah satu folder yang perlu mendapatkan perhatian khusus adalah folder /.well-known/acme-challenge yang digunakan oleh Let’s Encrypt untuk memeriksa keaslian domain. Jika folder tersebut tidak memiliki izin akses yang cukup, maka Let’s Encrypt tidak akan dapat memeriksa domain dan sertifikat SSL tidak akan dapat diterbitkan. Oleh karena itu, pengguna perlu memastikan bahwa folder /.well-known/acme-challenge memiliki izin akses yang cukup dengan menjalankan perintah chmod pada folder tersebut. Selain itu, pengguna juga perlu memperhatikan izin akses pada folder lain yang digunakan oleh Let’s Encrypt, seperti folder temp dan folder sertifikat SSL. Dengan memperhatikan folder permissions, pengguna dapat memastikan bahwa layanan Let’s Encrypt pada CyberPanel berjalan dengan baik dan sertifikat SSL dapat diterbitkan dengan sukses.

    Tambah code dibawah ke file .htaccess anda untuk memperbolehkan akses file ACME Clien Verification dapat di akses secara public
Allow access to the /.well-known/acme-challenge directory for Let's Encrypt SSL
RewriteEngine On
RewriteRule ^.well-known/acme-challenge - [L]
  • Let’s Encrypt Authority memverifikasi bahwa Anda memang pemilik dan mengendalikan domain yang ingin Anda dapatkan sertifikatnya pastikan anda melakukan konfigurasi HTTP-01 dan DNS-01.
    • HTTP-01 Challenge (or file-based challenge): Ini adalah jenis tantangan yang paling umum saat ini. Let’s Encrypt memberikan token ke klien ACME Anda, dan klien ACME Anda meletakkan file di server web Anda di http://<domain.com>/.well-known/acme-challenge/<Token> (pastikan dapat di akses secara public, lihat pengaturan .htaccess di atas, perlu di ketahui code unik akan di bentuk secara automatis oleh Let’s Encrypt)
    • DNS-01 challenge: Tantangan ini meminta Anda untuk membuktikan bahwa Anda mengontrol DNS untuk nama domain Anda dengan memasukkan nilai tertentu dalam data TXT di bawah nama domain tersebut, hal ini berlaku pada main domain dan sub.domain. buat entry dengan type TXT dengan value _acme-challenge.<domain.com> pada pengaturan DNS domain anda.
  • ModSecurity Blocking
    ModSecurity adalah sebuah aplikasi firewall yang bisa digunakan untuk melindungi website Anda dari serangan siber. Salah satu fitur dari ModSecurity adalah kemampuannya untuk memblokir akses ke website yang mencurigakan atau berbahaya. ModSecurity akan memeriksa setiap request yang masuk ke website Anda dan akan memblokir request tersebut jika terdeteksi adanya ancaman seperti serangan SQL injection, cross-site scripting (XSS), atau brute-force login. Meskipun ModSecurity sangat efektif dalam melindungi website dari serangan siber, terkadang filternya bisa terlalu ketat dan memblokir akses ke website yang sebenarnya aman. Jika Anda mengalami masalah dengan ModSecurity blocking, Anda bisa memeriksa log ModSecurity untuk melihat alasan mengapa request Anda diblokir dan melakukan penyesuaian pada konfigurasi ModSecurity.

    jika Anda melakukan perubahan pada ModSecurity, bisa terjadi ModSecurity memblokir semua koneksi dari IP yang berhubungan dengan Let’s Encrypt sehingga tidak dapat memverifikasi domain yang menyebabkan kegagalan renewal atau issue sertifikat SSL.
    Ada solusi sederhana untuk dapat menerbitkan sertifikat SSL dalam kasus ini:
    Pergi ke Security -> ModSecurity Conf dan Anda akan disambut dengan layar ini, Matikan ModSecurity lalu buka SSL -> Kelola SSL dan keluarkan sertifikat SSL untuk situs web Anda. Setelah selesai, aktifkan kembali ModSecurity.

    atau Anda dapat menggunakan cara ini matikan ModSecurity dan Lakukan Proses Point 6, dan Nyalakan Kembali.
  • Lakukan Renewal atau Reissue SSL secara manual menggunakan Command Line
/root/.acme.sh/acme.sh --issue -d YOUR_DOMAIN -d www.YOUR_DOMAIN --cert-file /etc/letsencrypt/live/YOUR_DOMAIN/cert.pem --key-file /etc/letsencrypt/live/YOUR_DOMAIN/privkey.pem --fullchain-file /etc/letsencrypt/live/YOUR_DOMAIN/fullchain.pem -w /home/YOUR_DOMAIN/public_html --force --debug

ganti text YOUR_DOMAIN dengan domain anda atau subdomain anda.
dan pastikan sudah melakukan 5 point di atas dan pastikan tidak ada error yang terjadi.


Berikut ini hasil manual issue SSL dengan command line

Hasil Issue Secara Manual.

Kesimpulan: Pada dasarnya, masalah sertifikat SSL Let’s Encrypt pada CyberPanel dapat diatasi dengan melakukan beberapa perubahan pada konfigurasi pastikan semua point di atas telah di lakukan dengan tepat, dan perlu di ingat bahwa untuk melakukan renew maximal 5x request, sehingga anda perlu memastikan semua konfigurasi telah di lakukan dengan benar, jangan terburu-buru ketika melakukan request, analisa dengan tenang dan cari solusinya. Jika terjadi 5x request mungkin server Anda akan di batasi selama seminggu kedepan untuk dapat melakukan request kembali.

Referensi:

  • https://cyberpanel.net/docs-2/tag/lets-encrypt/
  • https://community.cyberpanel.net/t/02-upgrading-cyberpanel/81
  • https://letsencrypt.org/

Image by Schluesseldienst from Pixabay

Leave a Comment

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