ការដំឡើងវិញ្ញាបនបត្រ SSL នៅលើ Nginx

ការដំឡើងវិញ្ញាបនបត្រ SSL នៅលើ Nginx

អត្ថបទនេះនឹងណែនាំអ្នកពីជំហានក្នុងការដំឡើង វិញ្ញាបនប័ត្រ SSL របស់អ្នក នៅលើ Nginx ហើយដំឡើងការបញ្ជូនបន្តដោយស្វ័យប្រវត្តិពី HTTP:// ទៅ HTTPS:// ។

1) ផ្ទុកឡើងវិញ្ញាបនបត្រនៅលើ Server ដែលគេហទំព័ររបស់អ្នកត្រូវបានបង្ហោះ

ដោយបានបញ្ចប់ជំហាន ការបង្កើតកូដ CSR និង ការធ្វើឱ្យសកម្ម SSL អ្នកនឹងទទួលបានឯកសារ zip ជាមួយវិញ្ញាបនបត្រ Sectigo (ពីមុនត្រូវបានគេស្គាល់ថា Comodo) តាមរយៈអ៊ីមែល។

ជាជម្រើសអ្នកអាចធ្វើបាន ទាញយកពួកវា ពីបន្ទះគណនី 1Byte របស់អ្នក។

ចំណាំ (Note)៖ ប្រសិនបើអ្នកជ្រើសរើសម៉ាស៊ីនមេ NGINX នៅពេលដំណើរការវិញ្ញាបនបត្រ អ្នកនឹងទទួលបានឯកសារ zip ដែលមានឯកសារវិញ្ញាបនបត្រ ជាមួយនឹងផ្នែកបន្ថែម '.crt' និង អាជ្ញាធរវិញ្ញាបនប័ត្រ ឯកសារបាច់ (CA) ជាមួយនឹងផ្នែកបន្ថែម '.ca-bundle' ។

ផ្ទុកឡើងឯកសារទាំងពីរទៅ Server របស់អ្នកតាមវិធីដែលអ្នកចង់បាន។ ឧទាហរណ៍ដោយប្រើម៉ាស៊ីនភ្ញៀវ FTP ។

អ្នកក៏អាចទាញយកឯកសារ Bundle សម្រាប់វិញ្ញាបនបត្រនីមួយៗផងដែរ។

ធានាសុវត្ថិភាពគេហទំព័ររបស់អ្នកភ្លាមៗ
1Byte ផ្តល់វិញ្ញាបនបត្រ SSL ដែលអាចទុកចិត្តបាន ដើម្បីការពារគេហទំព័ររបស់អ្នក និងធានាការបញ្ជូនទិន្នន័យប្រកបដោយសុវត្ថិភាពសម្រាប់អតិថិជនរបស់អ្នក។

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;
}

ស្វែងយល់ពីសេវាកម្មរបស់យើង។

ប្រើប្រាស់ជំនាញ Cloud Computing ដ៏រឹងមាំរបស់ 1Byte ដើម្បីជំរុញអាជីវកម្មរបស់អ្នកតាមរបៀបដ៏ធំមួយ

Domains

1Byte ផ្តល់ពេញលេញ domain សេវាកម្មចុះឈ្មោះដែលរួមមានបុគ្គលិកគាំទ្រដោយយកចិត្តទុកដាក់ ការថែទាំអតិថិជនដែលមានការអប់រំ ការចំណាយសមរម្យ ក៏ដូចជា ក domain ឧបករណ៍ស្វែងរកតម្លៃ។

វិញ្ញាបនបត្រ SSL

បង្កើនសុវត្ថិភាពលើអ៊ីនធឺណិតរបស់អ្នកជាមួយនឹងសេវាកម្ម SSL របស់ 1Byte ។ ការការពារដែលមិនអាចប្រៀបផ្ទឹមបាន ការរួមបញ្ចូលដោយគ្មានថ្នេរ និងសន្តិភាពនៃចិត្តសម្រាប់ដំណើរឌីជីថលរបស់អ្នក។

Cloud Server

មិនថា cloud server កញ្ចប់ដែលអ្នកជ្រើសរើស អ្នកអាចពឹងផ្អែកលើ 1Byte សម្រាប់ភាពជឿជាក់ ភាពឯកជន សុវត្ថិភាព និងបទពិសោធន៍គ្មានភាពតានតឹង ដែលមានសារៈសំខាន់សម្រាប់អាជីវកម្មជោគជ័យ។

Shared Hosting

ការជ្រើសរើសពួកយើងជាអ្នកផ្តល់សេវាបង្ហោះចែករំលែករបស់អ្នកអនុញ្ញាតឱ្យអ្នកទទួលបានតម្លៃដ៏ល្អឥតខ្ចោះសម្រាប់ប្រាក់របស់អ្នក ខណៈពេលដែលរីករាយនឹងកម្រិតគុណភាព និងមុខងារដូចគ្នានឹងជម្រើសដែលមានតម្លៃថ្លៃជាង។

Cloud Hosting

តាមរយៈកម្មវិធីដែលមានភាពបត់បែនខ្ពស់ 1Byte ដ៏ទំនើប cloud hosting ផ្តល់ដំណោះស្រាយដ៏អស្ចារ្យដល់អាជីវកម្មខ្នាតតូច និងមធ្យមលឿនជាងមុន សុវត្ថិភាពជាងមុន និងក្នុងតម្លៃកាត់បន្ថយ។

WordPress Hosting

បន្តនាំមុខការប្រកួតប្រជែងជាមួយនឹងសេវាកម្មបង្ហោះ WordPress ប្រកបដោយភាពច្នៃប្រឌិតរបស់ 1Byte ។ ផែនការដែលសំបូរទៅដោយលក្ខណៈពិសេសរបស់យើង និងភាពជឿជាក់ដែលមិនអាចប្រៀបផ្ទឹមបានធានាថាគេហទំព័ររបស់អ្នកមានភាពលេចធ្លោ និងផ្តល់នូវបទពិសោធន៍អ្នកប្រើប្រាស់ដែលមិនអាចបំភ្លេចបាន។

Amazon Web Services (AWS)
ភាពជាដៃគូ AWS

ក្នុងនាមជាដៃគូ AWS ផ្លូវការ ទំនួលខុសត្រូវចម្បងមួយរបស់យើងគឺជួយអាជីវកម្មក្នុងការធ្វើទំនើបកម្មប្រតិបត្តិការរបស់ពួកគេ និងប្រើប្រាស់ច្រើនបំផុតក្នុងការធ្វើដំណើររបស់ពួកគេទៅកាន់ពពកជាមួយ AWS ។

បញ្ជូនបន្តបណ្តោះអាសន្នទៅ HTTPS មិនមែន www

server {
listen 80;
server_name your_domain.com www.your_domain.ជាមួយ;
ត្រឡប់ 302 https://your_domain.com$request_uri;
}