Որոշ համօգտագործվող հոսթինգի փաթեթներ cPanel-ով չեն առաջարկում AutoSSL կամ առաջարկում են միայն ավելի բարձր գներով փաթեթներ։ Արդյունքում, դուք չեք կարող անվճար Let's Encrypt վկայական տրամադրել cPanel ինտերֆեյսի միջոցով, և բոլոր դոմեյնները կպած են ինքնաստորագրված վկայականով։ Զննարկիչը էջը ցուցադրում է որպես «անապահով»։ Լուծումը՝ ձեռք բերեք վկայականը ինքներդ՝ օգտագործելով acme.sh-ը և տեղադրեք այն cPanel UAPI-ի միջոցով՝ ավտոմատ կերպով երկարաձգվելով, ամբողջությամբ առանց AutoSSL-ի։
HTTPS-ը վաղուց պարտադիր է եղել։ Հետևաբար, ավելի հիասթափեցնող է, երբ ձեր սեփական հոսթինգի փաթեթը չի առաջարկում անվճար վկայական ստանալու հարմար միջոց։ Սա տեղի է ունենում ավելի հաճախ, քան կարող եք մտածել, օրինակ՝ մատչելի մուտքի մակարդակի փաթեթների դեպքում կամ պլանի փոփոխությունից հետո, երբ վկայականը հանկարծակի այլևս ներառված չէ։ Այնուամենայնիվ, այս բացը կարող է նրբագեղ և ընդմիշտ փակվել shell-ում ընդամենը մի քանի տող կոդով. ամբողջական գործընթացը նկարագրված է ստորև։
1. Մուտք գործեք SSH-ի միջոցով
ssh -p <port> <user>@example.com
2. Տեղադրեք acme.sh-ը
curl https://get.acme.sh | sh -s email=me@example.com
source ~/.bashrc
3. Սահմանեք Let's Encrypt-ը որպես CA
acme.sh --set-default-ca --server letsencrypt
4. Վկայականի տրամադրում
acme.sh --issue -d example.com -d www.example.com -w ~/public_html
5. Տեղադրեք cPanel-ում
acme.sh --deploy -d example.com --deploy-hook cpanel_uapi
6. Ստուգել
uapi SSL installed_hosts
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \
| openssl x509 -noout -issuer -dates
Հուկը UAPI-ի միջոցով գրանցում է վկայականը համապատասխան վիրտուալ հոսթին։ Տեղակայման կարգավորումները պահպանվում են. այսուհետ cron-ը ավտոմատ կերպով կերկարաձգի և կտեղադրի ամեն ինչ մինչև ժամկետի ավարտը։ Արտոնագրողը «Let's Encrypt»-ն է, իսկ ժամկետի ավարտը մոտավորապես 90 օր է։ Եթե հին, ինքնաստորագրված վկայականը դեռևս հայտնվում է, զննարկիչում վերաբեռնումը սովորաբար օգնում է. նախորդ վկայականը կարող է ժամանակավորապես քեշավորված լինել։
Որոշ հոսթեր գործարկում են իրենց սեփական cPanel կեռիկը։ install_ssl և պատասխանում է նման մի բանով adminbin Cpanel/hooks2/...: exit 255. acme.sh-ը դեռևս հաղորդում է «հաջողությամբ տեղակայվել է»՝ և դա ճիշտ է։ Այս դեպքում կեռիկը ձախողվում է հաջորդ քայլի պատճառով (օրինակ՝ ներքին ծանուցում կամ հոսթինգ մատակարարի կողմից համաժամեցման աշխատանք), այլ ոչ թե իրական տեղադրման։
Ումլաուտներով դոմեյնների համար acme.sh-ը ներքին կերպով պահպանում է վկայականը Punycode ձևաչափով (xn--…), մինչդեռ կեռիկի ավտոմատ համապատասխանեցումը համեմատում է Unicode ձևը: Արդյունքը՝ «տեղակայված է 0-ից 0 կայքերում»՝ ոչինչ տեղադրված չէ: Խորամանկությունն այն է, որ acme.sh-ը նույնպես այստեղ հաղորդում է «Հաջողություն», ուստի սխալը հեշտությամբ անտեսվում է: Լուծում՝ աշխատեք անմիջապես Punycode տիրույթի հետ և անջատեք ավտոմատ համապատասխանեցումը::
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
SSH մուտքի դեպքում ձեզ AutoSSL պետք չէ. acme.sh-ը տրամադրում է վկայականը, որը cpanel_uapi-Hook-ը տեղադրում է այն, և ներառված cron աշխատանքը այն ավտոմատ կերպով թարմացնում է: Կարգավորելուց հետո անվճար HTTPS ծառայությունը անընդհատ աշխատում է ինքնուրույն: Նրանք, ովքեր ներդնում են սկզբնական ջանքերը, խնայում են իրենց ապագայում յուրաքանչյուր ձեռքով թարմացումից և կարող են նույն լուծումը տարածել նույն հաշվի ցանկացած լրացուցիչ դոմեյնի վրա՝ մեկ հրամանով: