ចូរយើងអ៊ិនគ្រីប DomainFactory

កញ្ចប់​សេវា​បង្ហោះ​ដែល​បាន​ចែករំលែក​មួយចំនួន​ជាមួយ cPanel មិន​ផ្តល់ជូន AutoSSL ទេ ឬ​មានតែ​ក្នុង​ផែនការ​តម្លៃ​ខ្ពស់​ជាង​នេះ​ប៉ុណ្ណោះ។ ជាលទ្ធផល អ្នកមិនអាចចេញវិញ្ញាបនបត្រ Let's Encrypt ដោយឥតគិតថ្លៃតាមរយៈចំណុចប្រទាក់ cPanel បានទេ ហើយដែនទាំងអស់ត្រូវបានជាប់គាំងជាមួយនឹងវិញ្ញាបនបត្រដែលចុះហត្ថលេខាដោយខ្លួនឯង។ កម្មវិធីរុករកបង្ហាញទំព័រថា "មិនមានសុវត្ថិភាព"។ ដំណោះស្រាយ៖ ទទួលបានវិញ្ញាបនបត្រដោយខ្លួនឯងដោយប្រើ acme.sh ហើយដំឡើងវាតាមរយៈ cPanel UAPI - បន្តដោយស្វ័យប្រវត្តិ ទាំងស្រុងដោយមិនចាំបាច់ប្រើ AutoSSL។


HTTPS ជាយូរមកហើយ គឺជាកាតព្វកិច្ច។ ដូច្នេះ វាកាន់តែធ្វើឲ្យខកចិត្ត នៅពេលដែលកញ្ចប់បង្ហោះផ្ទាល់ខ្លួនរបស់អ្នកមិនផ្តល់នូវវិធីងាយស្រួលក្នុងការទទួលបានវិញ្ញាបនបត្រឥតគិតថ្លៃ។ រឿងនេះកើតឡើងញឹកញាប់ជាងអ្វីដែលអ្នកគិត ឧទាហរណ៍ជាមួយនឹងកញ្ចប់កម្រិតចូលដែលមានតម្លៃថោក ឬបន្ទាប់ពីការផ្លាស់ប្តូរផែនការ ដែលវិញ្ញាបនបត្រត្រូវបានបញ្ឈប់ភ្លាមៗ។ ទោះជាយ៉ាងណាក៏ដោយ គម្លាតនេះអាចត្រូវបានបិទយ៉ាងស្រស់ស្អាត និងជាអចិន្ត្រៃយ៍ជាមួយនឹងកូដតែប៉ុន្មានបន្ទាត់នៅក្នុងសែល - ដំណើរការពេញលេញត្រូវបានពិពណ៌នាខាងក្រោម។

១. ចូលតាមរយៈ SSH

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

២. ដំឡើង acme.sh

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

៣. កំណត់ Let's Encrypt ជា CA

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

៤. ចេញវិញ្ញាបនបត្រ

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

៥. ដំឡើងទៅក្នុង cPanel

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

៦. ពិនិត្យ

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 នៅតែរាយការណ៍ថា "បានដាក់ពង្រាយដោយជោគជ័យ" - ហើយនោះជាការត្រឹមត្រូវ។ ក្នុងករណីនេះ hook បរាជ័យដោយសារតែជំហានជាបន្តបន្ទាប់ (ដូចជាការជូនដំណឹងផ្ទៃក្នុង ឬការងារធ្វើសមកាលកម្មដោយអ្នកផ្តល់សេវាបង្ហោះ) មិនមែនដោយសារតែការដំឡើងពិតប្រាកដនោះទេ។

សម្រាប់ដែនដែលមាន umlauts acme.sh រក្សាទុកវិញ្ញាបនបត្រជាលក្ខណៈផ្ទៃក្នុងក្នុងទម្រង់ Punycode (xn--…) ខណៈពេលដែលឧបករណ៍ផ្គូផ្គងដោយស្វ័យប្រវត្តិរបស់ hook ប្រៀបធៀបទម្រង់យូនីកូដ។ លទ្ធផល៖ "បានដាក់ពង្រាយទៅកាន់ 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 ឥតគិតថ្លៃនឹងដំណើរការជាបន្តបន្ទាប់ដោយខ្លួនឯង។ អ្នកដែលវិនិយោគកិច្ចខិតខំប្រឹងប្រែងដំបូងនឹងជួយសង្គ្រោះខ្លួនឯងពីការបន្តឡើងវិញដោយដៃនៅពេលអនាគត - ហើយអាចពង្រីកដំណោះស្រាយដូចគ្នាទៅកាន់ដែនបន្ថែមណាមួយនៅក្នុងគណនីដូចគ្នាជាមួយនឹងពាក្យបញ្ជាតែមួយ។

ថយក្រោយ