Mari Sulitkan DomainFactory

Sesetengah pakej pengehosan kongsi dengan cPanel tidak menawarkan AutoSSL atau hanya menawarkannya pada kadar yang lebih tinggi. Hasilnya: Anda tidak boleh mengeluarkan sijil Let's Encrypt percuma melalui antara muka cPanel, dan semua domain tersekat pada sijil yang ditandatangani sendiri. Penyemak imbas memaparkan halaman sebagai "tidak selamat". Jalan keluar: dapatkan sijil sendiri dengan acme.sh dan pasangkannya melalui UAPI cPanel - diperbaharui secara automatik, tanpa AutoSSL.


HTTPS telah lama menjadi mandatori. Lebih mengecewakan lagi apabila pakej hosting anda sendiri tidak menawarkan cara yang mudah untuk mendapatkan sijil percuma. Ini berlaku lebih kerap daripada yang anda sangkakan, contohnya dengan pakej peringkat permulaan yang murah atau selepas perubahan pelan di mana sijil tiba-tiba tidak lagi disertakan. Walau bagaimanapun, jurang ini boleh ditutup secara elegan dan kekal hanya dengan beberapa baris kod dalam shell – proses lengkap diterangkan di bawah.

1. Log masuk melalui SSH

ssh -p <port> <user>@example.com

2. Pasang acme.sh

curl https://get.acme.sh | sh -s email=me@example.com
source ~/.bashrc

3. Tetapkan Let's Encrypt sebagai CA

acme.sh --set-default-ca --server letsencrypt

4. Mengeluarkan sijil

acme.sh --issue -d example.com -d www.example.com -w ~/public_html

5. Pasang ke dalam cPanel

acme.sh --deploy -d example.com --deploy-hook cpanel_uapi

6. Semak

uapi SSL installed_hosts
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \
     | openssl x509 -noout -issuer -dates

Cangkuk menulis sijil kepada vHost yang sesuai melalui UAPI. Tetapan penggunaan disimpan - mulai sekarang cron memperbaharui dan memasang semuanya secara bebas sebelum ia tamat tempoh. Pengeluarnya ialah "Let's Encrypt" dan tarikh tamat tempoh adalah sekitar 90 hari pada masa hadapan. Jika sijil lama yang ditandatangani sendiri muncul sebaliknya, muat semula keras dalam penyemak imbas biasanya membantu - sijil sebelumnya boleh disimpan buat sementara waktu.

Sesetengah hos menjalankan cangkuk cPanel mereka sendiri. install_ssl dan membalas dengan sesuatu seperti adminbin Cpanel/hooks2/...: exit 255. acme.sh masih melaporkan "berjaya digunakan" - dan itu betul. Dalam kes ini, cangkuk gagal kerana langkah berikutnya (cth. pemberitahuan dalaman atau kerja penyegerakan daripada hos), bukan kerana pemasangan sebenar.

Untuk domain dengan umlaut, acme.sh menyimpan sijil secara dalaman dalam bentuk Punycode (xn--…), manakala pemadanan automatik cangkuk membandingkan borang Unicode. Keputusan: "diletakkan ke 0 daripada 0 tapak" - tiada apa yang dipasang. Perkara yang rumit ialah acme.sh juga melaporkan "Kejayaan" di sini, jadi ralat itu mudah diabaikan. Penyelesaian: Bekerja secara langsung dengan domain Punycode dan matikan mod auto:

python3 -c "import sys;print(sys.argv[1].encode('idna').decode())" hallöle.de
acme.sh --issue -d xn--hallle-zxa.de -d www.xn--hallle-zxa.de -w ~/public_html
export DEPLOY_CPANEL_AUTO_ENABLED='false'
acme.sh --deploy -d xn--hallle-zxa.de --deploy-hook cpanel_uapi

Dengan akses SSH, anda tidak memerlukan AutoSSL: acme.sh mengeluarkan sijil, yang mana cpanel_uapi-Hook memasangnya, dan tugas cron yang disertakan memastikan ia dikemas kini secara automatik. Setelah disediakan, perkhidmatan HTTPS percuma berjalan secara berterusan. Mereka yang melaburkan usaha awal menjimatkan setiap pembaharuan manual pada masa hadapan – dan boleh melanjutkan penyelesaian yang sama ke mana-mana domain tambahan dalam akaun yang sama dengan satu arahan.

Belakang