Եկեք կոդավորենք DomainFactory-ն

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

Կեռիկը վկայականը գրում է համապատասխան vHost-ին UAPI-ի միջոցով: Տեղակայման կարգավորումը պահպանված է. այսուհետ cron-ը թարմացնում և տեղադրում է ամեն ինչ ինքնուրույն, նախքան դրա ժամկետի ավարտը: Թողարկողը «Let’s Encrypt»-ն է, իսկ պիտանելիության ժամկետը մոտ 90 օր է: Եթե ​​փոխարենը հայտնվում է հին, ինքնաստորագրված վկայականը, զննարկիչում կոշտ վերաբեռնումը սովորաբար օգնում է. նախորդ վկայականը կարող է ժամանակավորապես պահպանվել:

Որոշ հոսթեր գործարկում են իրենց սեփական cPanel կեռիկը։ install_ssl և պատասխանում է նման մի բանով adminbin Cpanel/hooks2/...: exit 255. acme.sh-ը դեռևս հաղորդում է «հաջողությամբ տեղակայվել» – և դա ճիշտ է: Այս դեպքում կեռիկը ձախողվում է հաջորդ քայլի պատճառով (օրինակ՝ հաղորդավարի ներքին ծանուցման կամ համաժամացման աշխատանք), այլ ոչ թե իրական տեղադրման պատճառով:

Ումլաուտներով դոմեյնների համար acme.sh-ը ներքին կերպով պահպանում է վկայականը Punycode ձևաչափով (xn--…), մինչդեռ կեռիկի ավտոմատ համընկնումը համեմատում է Յունիկոդի ձևը։ Արդյունք՝ «տեղակայված է 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 ծառայությունը անընդհատ աշխատում է ինքնուրույն: Նրանք, ովքեր ներդնում են սկզբնական ջանքերը, խնայում են իրենց ապագայում յուրաքանչյուր ձեռքով թարմացումից և կարող են նույն լուծումը տարածել նույն հաշվի ցանկացած լրացուցիչ դոմեյնի վրա՝ մեկ հրամանով:

Վերադառնալ