Եկեք կոդավորենք 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

Հուկը 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 ծառայությունը անընդհատ աշխատում է ինքնուրույն: Նրանք, ովքեր ներդնում են սկզբնական ջանքերը, խնայում են իրենց ապագայում յուրաքանչյուր ձեռքով թարմացումից և կարող են նույն լուծումը տարածել նույն հաշվի ցանկացած լրացուցիչ դոմեյնի վրա՝ մեկ հրամանով:

Վերադառնալ