லெட்ஸ் என்க்ரிப்ட் டொமைன்ஃபேக்டரி

CPanel உடனான சில பகிரப்பட்ட ஹோஸ்டிங் தொகுப்புகள் AutoSSL-ஐ வழங்குவதில்லை, அல்லது அதிக விலை கொண்ட திட்டங்களில் மட்டுமே வழங்குகின்றன. இதன் விளைவாக, cPanel இடைமுகம் வழியாக உங்களால் ஒரு இலவச Let's Encrypt சான்றிதழை வழங்க முடியாது, மேலும் அனைத்து டொமைன்களும் சுயமாக கையொப்பமிடப்பட்ட சான்றிதழுடன் சிக்கிக்கொள்கின்றன. உலாவி அந்தப் பக்கத்தை "பாதுகாப்பற்றது" என்று காட்டுகிறது. இதற்கான தீர்வு: acme.sh-ஐப் பயன்படுத்தி நீங்களே சான்றிதழைப் பெற்று, அதை cPanel UAPI வழியாக நிறுவவும் – இது AutoSSL இல்லாமலேயே, தானாகவே புதுப்பிக்கப்படும்.


HTTPS நீண்ட காலமாக கட்டாயமாக்கப்பட்டுள்ளது. அப்படியிருக்க, உங்கள் சொந்த ஹோஸ்டிங் தொகுப்பு ஒரு இலவச சான்றிதழைப் பெறுவதற்கான வசதியான வழியை வழங்காதபோது, அது இன்னும் அதிக ஏமாற்றத்தை அளிக்கிறது. நீங்கள் நினைப்பதை விட இது அடிக்கடி நிகழ்கிறது; உதாரணமாக, மலிவான தொடக்க நிலைத் தொகுப்புகளில் அல்லது ஒரு திட்ட மாற்றத்திற்குப் பிறகு, சான்றிதழ் திடீரென சேர்க்கப்படாமல் போகும்போது இது நிகழலாம். இருப்பினும், ஷெல்லில் சில வரிக் குறியீடுகளைக் கொண்டு இந்த இடைவெளியை நேர்த்தியாகவும் நிரந்தரமாகவும் சரிசெய்ய முடியும் – முழுமையான செயல்முறை கீழே விவரிக்கப்பட்டுள்ளது.

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. லெட்ஸ் என்க்ரிப்டை 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 வழியாகப் பொருத்தமான விர்ச்சுவல் ஹோஸ்டில் சான்றிதழை எழுதுகிறது. வரிசைப்படுத்தல் அமைப்புகள் சேமிக்கப்படுகின்றன – இனிமேல், காலாவதியாவதற்கு முன்பு க்ரான் தானாகவே அனைத்தையும் புதுப்பித்து நிறுவும். சான்றிதழை வழங்கியவர் "லெட்ஸ் என்க்ரிப்ட்", மற்றும் காலாவதி தேதி சுமார் 90 நாட்கள் ஆகும். பழைய, சுயமாக கையொப்பமிடப்பட்ட சான்றிதழ் இன்னும் தோன்றினால், உலாவியில் முழுமையாக மீண்டும் ஏற்றுவது (hard reload) பொதுவாக உதவும் – முந்தைய சான்றிதழ் தற்காலிகமாக கேச் செய்யப்பட்டிருக்கலாம்.

சில ஹோஸ்ட்கள் தங்களின் சொந்த cPanel ஹூக்கை இயக்குகின்றன. install_ssl மேலும் இது போன்ற ஒன்றை பதிலளிக்கிறது adminbin Cpanel/hooks2/...: exit 255. acme.sh இன்னமும் "வெற்றிகரமாக நிறுவப்பட்டது" என்றே காட்டுகிறது – அது சரியானதுதான். இந்தச் சூழலில், உண்மையான நிறுவலால் அல்ல, மாறாக ஒரு பிந்தைய படிநிலையின் (ஹோஸ்டிங் வழங்குநரின் உள்ளக அறிவிப்பு அல்லது ஒத்திசைவுப் பணி போன்றவை) காரணமாகவே அந்த ஹூக் தோல்வியடைகிறது.

உம்லாட்களைக் கொண்ட டொமைன்களுக்கு, acme.sh சான்றிதழை புனிகோட் வடிவத்தில் உள்ரீதியாகச் சேமிக்கிறது.xn--…), அதே சமயம் ஹூக்கின் ஆட்டோ-மேட்சர் யூனிகோட் வடிவத்தை ஒப்பிடுகிறது. முடிவு: "0 தளங்களில் 0-இல் பயன்படுத்தப்பட்டது" – எதுவும் நிறுவப்படவில்லை. இதில் உள்ள சூழ்ச்சி என்னவென்றால், acme.sh-ம் இங்கே "வெற்றி" என்று தெரிவிப்பதால், இந்தப் பிழை எளிதில் கவனிக்கப்படாமல் போய்விடுகிறது. தீர்வு: புனிகோட் டொமைனுடன் நேரடியாகப் பணியாற்றி, ஆட்டோ-மேட்சிங்கை முடக்கவும்.:

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 job அதைத் தானாகவே புதுப்பித்துக் கொண்டே இருக்கும். ஒருமுறை அமைக்கப்பட்டதும், இந்த இலவச HTTPS சேவை தொடர்ந்து தானாகவே இயங்கும். ஆரம்ப முயற்சியை மேற்கொள்பவர்கள், எதிர்காலத்தில் கைமுறையாகப் புதுப்பிக்கும் சிரமத்தைத் தவிர்க்கலாம் – மேலும், ஒரே கட்டளையின் மூலம் இதே தீர்வை அதே கணக்கில் உள்ள வேறு எந்த டொமைனுக்கும் விரிவுபடுத்த முடியும்.

மீண்டும்