អត្ថបទនេះនឹងណែនាំអ្នកពីជំហានក្នុងការដំឡើង វិញ្ញាបនប័ត្រ SSL របស់អ្នក នៅលើ Nginx ហើយដំឡើងការបញ្ជូនបន្តដោយស្វ័យប្រវត្តិពី HTTP:// ទៅ HTTPS:// ។
1) ផ្ទុកឡើងវិញ្ញាបនបត្រនៅលើ Server ដែលគេហទំព័ររបស់អ្នកត្រូវបានបង្ហោះ
ដោយបានបញ្ចប់ជំហាន ការបង្កើតកូដ CSR និង ការធ្វើឱ្យសកម្ម SSL អ្នកនឹងទទួលបានឯកសារ zip ជាមួយវិញ្ញាបនបត្រ Sectigo (ពីមុនត្រូវបានគេស្គាល់ថា Comodo) តាមរយៈអ៊ីមែល។
ជាជម្រើសអ្នកអាចធ្វើបាន ទាញយកពួកវា ពីបន្ទះគណនី 1Byte របស់អ្នក។
ចំណាំ (Note)៖ ប្រសិនបើអ្នកជ្រើសរើសម៉ាស៊ីនមេ NGINX នៅពេលដំណើរការវិញ្ញាបនបត្រ អ្នកនឹងទទួលបានឯកសារ zip ដែលមានឯកសារវិញ្ញាបនបត្រ ជាមួយនឹងផ្នែកបន្ថែម '.crt' និង អាជ្ញាធរវិញ្ញាបនប័ត្រ ឯកសារបាច់ (CA) ជាមួយនឹងផ្នែកបន្ថែម '.ca-bundle' ។
ផ្ទុកឡើងឯកសារទាំងពីរទៅ Server របស់អ្នកតាមវិធីដែលអ្នកចង់បាន។ ឧទាហរណ៍ដោយប្រើម៉ាស៊ីនភ្ញៀវ FTP ។
អ្នកក៏អាចទាញយកឯកសារ Bundle សម្រាប់វិញ្ញាបនបត្រនីមួយៗផងដែរ។
2) ផ្សំវិញ្ញាបនបត្រទាំងអស់ទៅក្នុងឯកសារតែមួយ
អ្នកត្រូវមានវិញ្ញាបនបត្រទាំងអស់ (your_domain.crt និង your_domain.ca-bundle) រួមបញ្ចូលគ្នាក្នុងឯកសារ '.crt' តែមួយ។
វិញ្ញាបនប័ត្រសម្រាប់អ្នក domain គួរតែមកមុនគេនៅក្នុងឯកសារ បន្ទាប់មកតាមខ្សែសង្វាក់នៃវិញ្ញាបនបត្រ (CA Bundle)។
បញ្ចូលថតដែលអ្នកបានផ្ទុកឡើងឯកសារវិញ្ញាបនបត្រ។ រត់ពាក្យបញ្ជាខាងក្រោមដើម្បីផ្សំឯកសារ៖
$ ឆ្មារបស់អ្នក_domain.crt របស់អ្នក_domain.ca-bundle >> your_domain_chain.crt
សូមចំណាំ ថាប្រសិនបើឯកសារវិញ្ញាបនបត្រត្រូវបានទាញយកពីគណនី 1Byte របស់អ្នក ពាក្យបញ្ជាល្អបំផុតដែលត្រូវប្រើនឹងមានៈ
$ ឆ្មារបស់អ្នក_domain.crt > របស់អ្នក_domain_chain.crt ; បន្ទរ >> របស់អ្នកdomain_chain.crt ; ឆ្មារបស់អ្នក_domain.ca-bundle >> your_domain_chain.crt
ជាជម្រើស អ្នកអាចផ្សំឯកសារដោយប្រើ ឧបករណ៍អនឡាញនេះ ហើយអនុវត្តតាមជំហានខាងក្រោម៖
- Open របស់អ្នកdomain.crt ឯកសារនៅក្នុងកម្មវិធីនិពន្ធអត្ថបទ ហើយចម្លងកូដវិញ្ញាបនបត្រ រួមទាំងស្លាក '—–BEGIN CERTIFICATE—–' និង '—–END CERTIFICATE—–' ។
- សូមចូលទៅកាន់ https://ssl-checker.1byte.com/ និងបើក ឌិកូដ SSL&CSR ផ្ទាំង។
- បិទភ្ជាប់ របស់អ្នកdomain.crt កូដអត្ថបទទៅកាន់វាលដែលត្រូវការហើយចុច Decode.

- បន្ទាប់មក រំកិលលទ្ធផលចុះក្រោម ហើយស្វែងរក កញ្ចប់ (Nginx) ផ្នែកនៅក្នុង General Information ជាផ្នែកមួយ។
- ចុចលើរូបតំណាងថាសទន់នៅខាងស្តាំដើម្បីទាញយកឯកសារដែលបានបង្កើត។

- ឯកសារ 'nginx_bundle.zip' នឹងត្រូវបានទាញយកទៅកុំព្យូទ័ររបស់អ្នក។ ពន្លាវាហើយប្រើ nginx_bundle_l3s4k9n1l0s3.crt file (ផ្នែក ‘l3s4k9n1l0s3′ នៃឈ្មោះគឺជាខ្សែអក្សរអក្សរក្រមចៃដន្យ) សម្រាប់ដំឡើង។
រួចរាល់!
3) ការបង្កើតប្លុក Nginx Server ដាច់ដោយឡែក ឬកែប្រែឯកសារកំណត់រចនាសម្ព័ន្ធដែលមានស្រាប់
ដើម្បីដំឡើង វិញ្ញាបនប័ត្រ SSL នៅលើ Nginx អ្នកត្រូវបង្ហាញម៉ាស៊ីនមេដែលឯកសារដែលត្រូវប្រើ ទាំងដោយ ក) បង្កើតឯកសារកំណត់រចនាសម្ព័ន្ធថ្មី ឬ ខ) កែសម្រួលឯកសារដែលមានស្រាប់។
a) ដោយការបន្ថែមឯកសារកំណត់រចនាសម្ព័ន្ធថ្មីសម្រាប់គេហទំព័រ អ្នកអាចប្រាកដថាមិនមានបញ្ហាជាមួយឯកសារកំណត់រចនាសម្ព័ន្ធដាច់ដោយឡែកនោះទេ។ លើសពីនេះទៅទៀត វានឹងកាន់តែងាយស្រួលក្នុងការដោះស្រាយការដំឡើងក្នុងករណីមានបញ្ហាជាមួយនឹងការកំណត់រចនាសម្ព័ន្ធថ្មី។
យើងស្នើឱ្យបង្កើតឯកសារកំណត់រចនាសម្ព័ន្ធថ្មីនៅក្នុងថតឯកសារនេះ៖
/etc/nginx/conf.d
នេះអាចត្រូវបានធ្វើតាមរយៈពាក្យបញ្ជានេះ:
sudo nano /etc/nginx/conf.d/Your_domain*-ssl.conf
ដែលជាកន្លែងដែល របស់អ្នក_domain*-ssl.conf គឺជាឈ្មោះនៃឯកសារដែលបានបង្កើតថ្មី។
បន្ទាប់មក ចម្លង និងបិទភ្ជាប់ប្លុកមួយនៃ Server ខាងក្រោមសម្រាប់ច្រក 443 ហើយកែសម្រួលថត។ ធានាបាននូវ server name និង ផ្លូវទៅកាន់ webroot ត្រូវគ្នានៅក្នុងប្លុក server សម្រាប់ច្រក 80 និងមួយសម្រាប់ច្រក 443. ប្រសិនបើអ្នកមានតម្លៃសំខាន់ៗផ្សេងទៀតដែលត្រូវរក្សាទុក សូមផ្លាស់ទីពួកវាទៅប្លុក Server ដែលបានបង្កើតថ្មីផងដែរ។
b) កែសម្រួលឯកសារកំណត់រចនាសម្ព័ន្ធលំនាំដើមរបស់ web-server ដែលត្រូវបានដាក់ឈ្មោះ nginx.conf. វាគួរតែនៅក្នុងថតមួយក្នុងចំណោមថតទាំងនេះ៖
/usr/local/nginx/conf
/etc/nginx
/usr/local/etc/nginx
អ្នកក៏អាចប្រើពាក្យបញ្ជានេះដើម្បីស្វែងរកវាផងដែរ៖
sudo find / -type f -iname “nginx.conf”
នៅពេលដែលអ្នករកឃើញវា សូមបើកឯកសារជាមួយ៖
sudo nano nginx.conf
បន្ទាប់មកចម្លង និងបិទភ្ជាប់មួយនៃប្លុក Server សម្រាប់ច្រក 443 ដែលបានផ្តល់ឱ្យខាងក្រោម ហើយកែសម្រួលថត យោងតាមប្លុក Server របស់អ្នកសម្រាប់ច្រក 80 (ជាមួយ ឈ្មោះ Server ដែលត្រូវគ្នា, ផ្លូវទៅកាន់ webroot, និង តម្លៃសំខាន់ៗ ណាមួយដែលអ្នកត្រូវការ) ជាជម្រើស អ្នកអាចចម្លងប្លុក Server សម្រាប់ច្រក 80 បន្ទាប់មកបិទភ្ជាប់វាខាងក្រោម ធ្វើបច្ចុប្បន្នភាពច្រក និងបន្ថែមការណែនាំដែលទាក់ទងនឹង SSL ចាំបាច់។
ជ្រើសរើស server block:
ខាងក្រោមអ្នកអាចស្វែងរកប្លុក Server សម្រាប់កំណែ Nginx របស់អ្នក។
ចំណាំ (Note)៖ ដើម្បីពិនិត្យមើលកំណែ Nginx របស់អ្នក សូមដំណើរការពាក្យបញ្ជានេះ៖
sudo nginx -v

ចំណាំ (Note)៖ ជំនួសតម្លៃឈ្មោះឯកសារ ដូចជា របស់អ្នកdomain_chain.crtនៅក្នុងប្លុកម៉ាស៊ីនមេជាមួយនឹងព័ត៌មានលម្អិតរបស់អ្នក ហើយកែប្រែផ្លូវទៅកាន់ពួកគេដោយប្រើ/path/to/.
- Server block សម្រាប់ Nginx កំណែ 1.14 និងខាងក្រោម៖
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/your_domain_chain.crt;
ssl_certificate_key /path/to/your_private.key;
root /path/to/webroot;
server_name your_domain.ជាមួយ;
}
ចំណាំ (Note)៖ អ្នកអាចបញ្ជាក់ឈ្មោះម៉ាស៊ីនច្រើនក្នុងការកំណត់រចនាសម្ព័ន្ធបែបនេះ ប្រសិនបើចាំបាច់ ឧ.:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/your_domain_chain.crt;
ssl_certificate_key /path/to/your_private.key;
root /path/to/webroot;
server_name your_domain.com www.your_domain.ជាមួយ;
}
Server block សម្រាប់ Nginx កំណែ 1.15 និងខ្ពស់ជាងនេះ៖
server {
ស្តាប់ 443 ssl;
ssl_certificate /path/to/certificate/your_domain_chain.crt;
ssl_certificate_key /path/to/your_private.key;
root /path/to/webroot;
server_name your_domain.ជាមួយ;
}
- ssl_certificate គួរតែត្រូវបានចង្អុលទៅឯកសារដែលមានវិញ្ញាបនបត្ររួមបញ្ចូលគ្នាដែលអ្នកបានបង្កើតមុននៅក្នុងផ្នែក "ផ្សំវិញ្ញាបនបត្រទាំងអស់ទៅក្នុងឯកសារតែមួយ"ខាងលើ។
- ssl_certificate_key គួរតែត្រូវបានចង្អុលទៅ Private Key ដែល បង្កើតដោយលេខកូដ CSR.
វាក្យស័ព្ទ៖ សម្រាប់ ពហុដែន ឬ វិញ្ញាបនប័ត្រ Wildcardអ្នកនឹងត្រូវមានការបន្ថែម Server block ដាច់ដោយឡែកសម្រាប់ដែន/ដែនរងនីមួយៗដែលរួមបញ្ចូលក្នុងវិញ្ញាបនបត្រ។ ត្រូវប្រាកដថាអ្នកបញ្ជាក់ដែន/ដែនរងនៅក្នុងសំណួររួមជាមួយនឹងផ្លូវទៅកាន់ឯកសារវិញ្ញាបនបត្រដូចគ្នានៅក្នុង Server block ដូចដែលបានពិពណ៌នាខាងលើ។
នៅពេលដែល Server block ដែលត្រូវគ្នាត្រូវបានបន្ថែមទៅឯកសារ ត្រូវប្រាកដថាអ្នករក្សាទុកការកែសម្រួល។ បន្ទាប់មក អ្នកអាចពិនិត្យមើលការផ្លាស់ប្ដូរដែលបានធ្វើឡើងវិញដោយមានជំហានដូចខាងក្រោម។
ដំណើរការពាក្យបញ្ជានេះដើម្បីផ្ទៀងផ្ទាត់ថាវាក្យសម្ព័ន្ធឯកសារកំណត់រចនាសម្ព័ន្ធគឺយល់ព្រម៖
sudo nginx -t

ប្រសិនបើអ្នកទទួលបានកំហុស សូមពិនិត្យមើលម្តងទៀតថាអ្នកបានធ្វើតាមការណែនាំឱ្យបានត្រឹមត្រូវ។ មានអារម្មណ៍សេរីក្នុងការទាក់ទងក្រុមគាំទ្រ livechat របស់យើង ប្រសិនបើអ្នកមានសំណួរណាមួយ។
នេះជាព័ត៌មានជំនួយ៖ ដើម្បីស្វែងរកកំណត់ហេតុកំហុសសម្រាប់ដោះស្រាយបញ្ហា គ្រាន់តែដំណើរការ៖
sudo nginx -T | grep 'error_log'
ក្នុងករណីដែលមិនមានឯកសារដែលបានរៀបរាប់នោះ ឯកសារត្រូវបានបញ្ចេញមតិ ឬប្រសិនបើគ្មានឯកសារកំណត់ហេតុកំហុសត្រូវបានបញ្ជាក់ កំណត់ហេតុប្រព័ន្ធលំនាំដើមគួរតែត្រូវបានពិនិត្យ៖
កន្ទុយ /var/log/nginx/error.log -n ២០
ប្រសិនបើ Server បង្ហាញការធ្វើតេស្តដោយជោគជ័យ ចាប់ផ្តើម Nginx ឡើងវិញដោយប្រើពាក្យបញ្ជានេះ ដើម្បីអនុវត្តការផ្លាស់ប្តូរ៖
sudo nginx -s ផ្ទុកឡើងវិញ
ឥឡូវនេះ វិញ្ញាបនបត្រ SSL របស់អ្នកត្រូវបានដំឡើង។ អ្នកអាចពិនិត្យមើលការដំឡើង នៅទីនេះ.
កំណត់សំគាល់សំខាន់ៗ:
ពេលខ្លះបន្ទាប់ពីដំឡើងឯកសារ SSL ដែលត្រូវបានបញ្ចូលគ្នាដោយប្រើបន្ទាត់ពាក្យបញ្ជា អ្នកអាចទទួលបាន 'Nginx/Apache error: 0906D066:PEM routines:PEM_read_bio:bad end line' សារកំហុស ក្នុងករណីនេះ ដំណោះស្រាយអាចត្រូវបានរកឃើញនៅក្នុងការណែនាំយោង។
បញ្ហាទូទៅមួយទៀតនៅដំណាក់កាលនេះគឺសារកំហុស ‘Nginx SSL: error:0B080074:x509 certificate routines: X509_check_private_key:key values mismatch’ ។
4) កំណត់រចនាសម្ព័ន្ធការបញ្ជូនបន្ត HTTPS
យើងស្នើឱ្យអ្នកដំឡើងការបញ្ជូនបន្តពី HTTP ទៅ HTTPS ។ វិធីនោះ អ្នកចូលមើលគេហទំព័ររបស់អ្នកនឹងអាចចូលប្រើកំណែសុវត្ថិភាពនៃគេហទំព័ររបស់អ្នកប៉ុណ្ណោះ។
ដើម្បីធ្វើដូចនេះអ្នកនឹងត្រូវបន្ថែមបន្ទាត់មួយទៅឯកសារកំណត់រចនាសម្ព័ន្ធជាមួយនឹង Server block សម្រាប់ច្រក 80 ។
គន្លឹះ:
អ្នកអាចប្រើពាក្យបញ្ជាមួយក្នុងចំណោមពាក្យបញ្ជាខាងក្រោមដើម្បីរកមើលឯកសារកំណត់រចនាសម្ព័ន្ធដែលត្រូវបានបើកឥឡូវនេះ៖
sudo nginx -T | grep -iw "ឯកសារកំណត់រចនាសម្ព័ន្ធ"
sudo nginx -T | grep -iw "រួមបញ្ចូល"
ផ្លូវលំនាំដើមទៅកាន់ឯកសារ conf គឺ៖
នៅលើ RHEL-based Linux OS៖ /etc/nginx/conf.d/default.conf
នៅលើ Linux OS ដែលមានមូលដ្ឋានលើ Debian៖ /etc/nginx/sites-enabled/default
អ្នកអាចបើកឯកសារដើម្បីពិនិត្យមើលថាតើមួយណាមាន Server block ដែលត្រូវការ។ សម្រាប់ការនេះ ដំណើរការរត់៖
sudo nano name_of_the_file
នៅពេលដែលអ្នករកឃើញឯកសារដែលមាន Server block សម្រាប់ច្រក 80 (ច្រក HTTP លំនាំដើម) បន្ថែមក្នុងបន្ទាត់ខាងក្រោម៖
return 301 https://$server_name$request_uri;
ចំណាំ (Note)៖ ច្បាប់បញ្ជូនបន្តខាងលើគួរតែត្រូវបានបញ្ចូលជាបន្ទាត់ចុងក្រោយនៅក្នុង Server block ។
- return គឺជាការណែនាំសំខាន់ក្នុងការប្រើប្រាស់។
- 301 គឺជាការប្តូរទិសអចិន្ត្រៃយ៍ (302 គឺជាបណ្តោះអាសន្ន) ។
- HTTPS គឺជាប្រភេទគ្រោងការណ៍ដែលបានបញ្ជាក់មួយ (ដែលច្បាស់លាស់ជំនួសឱ្យ គ្រោងការណ៍ $ អថេរ) ។
- $server_name អថេរនឹងប្រើដែនដែលបានបញ្ជាក់នៅក្នុងការណែនាំ server_name ។
- $request_uri អថេរត្រូវបានប្រើដើម្បីផ្គូផ្គងផ្លូវទៅទំព័រ/ផ្នែកនៃគេហទំព័រដែលបានស្នើសុំ (អ្វីគ្រប់យ៉ាងបន្ទាប់ពីឈ្មោះដែន)។
នេះគឺជាឧទាហរណ៍នៃ Server block ជាមួយនឹងការបញ្ជូនបន្ត HTTPS៖
ប្តូរទិសអចិន្ត្រៃយ៍ទៅ HTTPS
server {
listen 80;
server_name your_domain.com www.your_domain.ជាមួយ;
return 301 https://$server_name$request_uri;
}
ប្តូរទិសអចិន្ត្រៃយ៍ទៅ HTTPS មិនមែន www
server {
listen 80;
server_name your_domain.com www.your_domain.ជាមួយ;
ត្រឡប់ 301 https://your_domain.com$request_uri;
}
ប្តូរទិសអចិន្ត្រៃយ៍ទៅ HTTPS www
server {
listen 80;
server_name your_domain.com www.your_domain.ជាមួយ;
ត្រឡប់ 301 https://www.your_domain.com$request_uri;
}
បញ្ជូនបន្តបណ្តោះអាសន្នទៅ HTTPS មិនមែន www
server {
listen 80;
server_name your_domain.com www.your_domain.ជាមួយ;
ត្រឡប់ 302 https://your_domain.com$request_uri;
}
