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

ការដំឡើងវិញ្ញាបនប័ត្រ SSL នៅលើ Tomcat
​មាតិកា

ការណែនាំនេះគឺសំដៅលើបុគ្គលដែលមាន Apache Tomcat ដំឡើងគេហទំព័ររបស់ពួកគេដែលដំណើរការលើច្រកលំនាំដើម 8080 ឬច្រក 80 តាមរយៈប្រូតូកូល HTTP នៅពេលដែលលក្ខខណ្ឌនេះត្រូវបានពេញចិត្ត ការដំឡើង SSL អាចត្រូវបានផ្តួចផ្តើម។

Tomcat ផ្តល់នូវវិធីសាស្រ្តដែលអាចបត់បែនបានចំពោះការដំឡើង SSL បើប្រៀបធៀបទៅនឹង Server ផ្សេងទៀតភាគច្រើន។ វិញ្ញាបនបត្រ SSL អាចត្រូវបានដំឡើងដោយប្រើឧបករណ៍ភ្ជាប់ APR (Apache Portable Runtime) ឬ JSSE (Java Secure Socket Extension) ។ វិធីសាស្ត្រ JSSE ដែលពាក់ព័ន្ធនឹងអន្តរកម្មជាមួយ Java keystores ដែលបង្កើតតាមរយៈ keytool គឺជាឧបករណ៍ភ្ជាប់ដែលប្រើជាទូទៅបំផុត។ APR សម្រួលការដំឡើង SSL ដើម្បីធ្វើតាមដំណើរការដូច Apache ធម្មតា។

តម្រូវការទុកជាមុន

ត្រូវប្រាកដថាអ្នកបានចេញនិង វិញ្ញាបនបត្រ SSL សកម្ម files រៀបចំមុនពេលបន្តការដំឡើង SSL ។ អ្នកអាចធ្វើ ទាញយកវិញ្ញាបនបត្រសកម្ម ពីគណនី 1Byte របស់អ្នកដោយផ្ទាល់។

ប្រសិនបើ CSR ត្រូវបានបង្កើតដោយប្រើ keytool នៅលើ server របស់អ្នក អ្នកអាចនៅជាប់នឹង PKCS7 ជំហានដំឡើង។ ប្រសិនបើអ្នកបានបង្កើត CSR នៅកន្លែងផ្សេង ហើយមាន Private Key ដែលត្រូវគ្នា សូមប្រើពាក្យបញ្ជា PKCS12 or ការដំឡើងផ្អែកលើ APR.

សំខាន់: ប្រសិនបើ​អ្នក​មាន Private key ដោយឡែក និងឯកសារវិញ្ញាបនបត្រ អ្នកនឹងត្រូវ បំ​លែង ពួកវាទៅក្នុងឯកសារ PKCS#12 ជាមុនសិន លុះត្រាតែមាន APR ដែលបានកំណត់រចនាសម្ព័ន្ធជាមួយ Tomcat របស់អ្នក។ នៅពេលដែលឯកសារត្រូវបានបំប្លែង អ្នកអាចបន្តជាមួយជំហានដំឡើង PKCS#12 រៀងៗខ្លួន។

ធានាសុវត្ថិភាពគេហទំព័ររបស់អ្នកភ្លាមៗ
1Byte ផ្តល់វិញ្ញាបនបត្រ SSL ដែលអាចទុកចិត្តបាន ដើម្បីការពារគេហទំព័ររបស់អ្នក និងធានាការបញ្ជូនទិន្នន័យប្រកបដោយសុវត្ថិភាពសម្រាប់អតិថិជនរបស់អ្នក។
FURTHER READING:
1. ការដំឡើងវិញ្ញាបនបត្រ SSL នៅលើ Nginx
2. IIS៖ ការដំឡើងវិញ្ញាបនបត្រច្រើន។
3. ការដំឡើងវិញ្ញាបនប័ត្រ SSL នៅលើ IIS 7

ឃ្លាំងសម្ងាត់ Java

បន្ទាប់ពីអ្នកមាន បានបង្កើត Keystore មាន Private Key រួមជាមួយនឹង CSR ដែលត្រូវគ្នា អ្នកនឹងត្រូវនាំចូលវិញ្ញាបនបត្រ SSL ដែលបានចេញរបស់អ្នកទៅក្នុង Keystore ក្រោមឈ្មោះ Alias របស់ Keystore។ រាល់ពេលដែលអ្នកធ្វើអន្តរកម្មជាមួយឯកសារឃ្លាំងសម្ងាត់ អ្នកនឹងត្រូវបញ្ចូលពាក្យសម្ងាត់របស់វា។ ខាងក្រោមនេះគឺជាទិដ្ឋភាពទូទៅនៃវិធីដែលអាចធ្វើបានទាំងអស់នៃការបន្ថែមវិញ្ញាបនបត្រទៅ Keystore របស់អ្នក។

PKCS #7

វិធីដែលមានប្រសិទ្ធភាពបំផុតក្នុងការដំឡើង SSL របស់អ្នកនៅលើ Tomcat ពី keystore គឺត្រូវប្រើវិញ្ញាបនបត្រដែលបានធ្វើទ្រង់ទ្រាយ PKCS#7 (ឯកសារដែលមានផ្នែកបន្ថែម .p7b ឬ .cer)។

ជំហានទី 1: ផ្ទុកឡើងឯកសារ SSL

ផ្ទុកឡើងឯកសារវិញ្ញាបនបត្រ PKCS#7 នៅលើ Server ។ បន្ទាប់មកនាំចូលវាដោយប្រើពាក្យបញ្ជាខាងក្រោម៖

keytool -import -trustcacerts -alias tomcat -file certificate.p7b -keystore yourkeystore.jks

ដែលជាកន្លែងដែល:

  • tomcat គឺជាឈ្មោះ Alias ពិតប្រាកដនៃ keystore របស់អ្នក។
  • certificate.p7b គឺជាឈ្មោះ/ផ្លូវពិតប្រាកដទៅកាន់ឯកសារវិញ្ញាបនបត្ររបស់អ្នក។
  • yourkeystore.jks គឺជាឈ្មោះ/ផ្លូវពិតប្រាកដទៅកាន់ឯកសារ keystore

ត្រូវប្រាកដថាឯកសារវិញ្ញាបនបត្រមានឈ្មោះ Alias ដូចគ្នាដែលប្រើសម្រាប់ ការបង្កើត keystoreបើមិនដូច្នោះទេ កំហុស "Input not an X.509 certificate" អាចកើតឡើង។

បន្ទាប់ពីអ្នកបាននាំចូលដោយជោគជ័យ អ្នកគួរតែទទួលបានលទ្ធផលដូចខាងក្រោម៖

Certificate reply was installed in keystore

ជំហានទី 2: កែសម្រួលការកំណត់រចនាសម្ព័ន្ធ SSL

នៅជំហានបន្ទាប់ អ្នកនឹងត្រូវកែប្រែឧបករណ៍ភ្ជាប់សម្រាប់ច្រកលំនាំដើម 8443 ឬ 443។

ការកែប្រែគួរតែធ្វើឡើងនៅក្នុង ‘Tomcat installation directory’/conf/server.xml file។ អ្នកអាចស្វែងរកទីតាំងនៃថតដែលមាន server.xml configuration file ដោយចេញពាក្យបញ្ជានេះ៖

sudo find / -ipath '*tomcat*server.xml'

វានឹងទំនងជានៅក្នុង /opt/tomcat/conf/server.xml or /etc/tomcat/server.xml

នេះគឺជាឧទាហរណ៍នៃឧបករណ៍ភ្ជាប់ JSSE សម្រាប់ច្រក 443 ដោយប្រើពិធីការ HTTP/1.1 ជាមួយ TLS រហូតដល់ 1.3 បានបើក៖

<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="443"
maxThreads="200"
scheme="https"
secure="true"
SSLEnabled="true"
keystoreFile="/opt/tomcat/ssl/yourkeystore.jks"
keystorePass="keystore_password"
clientAuth="false"
sslProtocol="TLS"/>

ដែលជាកន្លែងដែល:

  • /opt/tomcat/ssl/yourkeystore.jks គឺជាផ្លូវដាច់ខាត និងឈ្មោះពិតនៃឯកសារ keystore
  • keystore_password គឺជាពាក្យសម្ងាត់ពិតប្រាកដសម្រាប់ Keystore របស់អ្នក។

ជំហានទី 3៖ អនុវត្តការផ្លាស់ប្តូរ

នៅពេលរួចរាល់ សូមចាប់ផ្តើម Tomcat ឡើងវិញ ដើម្បីអនុវត្តការផ្លាស់ប្តូរ។ ប្រសិនបើអ្នកមិនច្បាស់អំពីជំហានក្នុងការផលិតឡើងវិញទេ សូមរំកិលទៅផ្នែកនេះ អនុវត្តការផ្លាស់ប្តូរ ដើម្បីអនុវត្តការផ្លាស់ប្តូរ និងផ្ទៀងផ្ទាត់ការដំឡើង SSL ។

PEM

វិធីនៃការដំឡើងវិញ្ញាបនបត្រ SSL នៅលើ Tomcat ដ៏លំបាកបំផុតគឺដោយប្រើវិញ្ញាបនបត្រ SSL ដែលធ្វើទ្រង់ទ្រាយ PEM ដាច់ដោយឡែក។

ជំហានទី 1: រៀបចំឯកសារ

វិធីសាស្ត្រនេះតម្រូវឱ្យអ្នកមានវិញ្ញាបនបត្រនីមួយៗត្រូវបានរក្សាទុកក្នុងឯកសារដាច់ដោយឡែក៖

  1. វិញ្ញាបនបត្រឫសគល់ CA ។
  2. CA second intermediate certificate (ជាជម្រើស និងអាចត្រូវបានលុបចោល ប្រសិនបើកញ្ចប់ CA របស់អ្នកមានវិញ្ញាបនបត្រកម្រិតមធ្យម 1 ប៉ុណ្ណោះ)។
  3. វិញ្ញាបនបត្រកម្រិតមធ្យម CA ។
  4. វិញ្ញាបនបត្រអង្គភាពចុងក្រោយសម្រាប់ ឈ្មោះដែន.

លំដាប់នៃវិញ្ញាបនបត្រនឹងមានដូចខាងក្រោមសម្រាប់ការប្រើប្រាស់ញឹកញាប់បំផុត SSL វិជ្ជមាន វិញ្ញាបនបត្រ:

keytool -import AAA Certificate Services
keytool -import USERTrust RSA Certification Authority
keytool -import Sectigo RSA Domain Validation Secure Server CA
keytool -import example.com.crt

ចំណាំ: "AAA Certificate Services" ត្រូវបានដំឡើងតែប្រសិនបើអ្នកជ្រើសរើសកញ្ចប់ CA ដែលមានវិញ្ញាបនបត្រ cross-signed ។

បញ្ជីខាងលើត្រូវបានផ្សំឡើងក្នុងលំដាប់បញ្ច្រាសតាមគោលបំណង ព្រោះនេះជាលំដាប់ពិតប្រាកដដែលវិញ្ញាបនបត្រគួរតែត្រូវបាននាំចូលទៅ Keystore។ អ្នកអាច ទាញយកឯកសារវិញ្ញាបនបត្រ ពីគណនី 1Byte របស់អ្នក រួមជាមួយនឹងកញ្ចប់ CA ។ វាអាចមានប្រយោជន៍ ប្រសិនបើអ្នកជួបប្រទះបញ្ហា “keytool error: java.lang Exception: Failed to establish chain from reply” error។

ជំហានទី 2: នាំចូលឯកសារ

អនុវត្តតាមជំហានខាងក្រោមនៅក្នុងលំដាប់ដែលបានផ្តល់ឱ្យដើម្បីនាំចូលឯកសារឱ្យបានត្រឹមត្រូវ។

នាំចូលវិញ្ញាបនបត្រ root ដោយដំណើរការ៖

keytool -import -trustcacerts -alias root -file root.crt -keystore yourkeystore.jks

ដែលជាកន្លែងដែល:

  • root គឺជាឈ្មោះ Alias នៃវិញ្ញាបនបត្រ root CA ដែលនាំចូល
  • root.crt គឺជាឈ្មោះ/ផ្លូវពិតប្រាកដនៃវិញ្ញាបនបត្រ root CA របស់អ្នក។
  • yourkeystore.jks គឺជាឈ្មោះ/ផ្លូវពិតប្រាកដនៃឯកសារ keystore

ចំណាំ: កំឡុងពេលនាំចូលវិញ្ញាបនបត្រ Root CA អ្នកអាចនឹងត្រូវបានសួរដោយសារខាងក្រោម។

Certificate already exists in system-wide CA keystore under alias <aliasname>
Do you still want to add it to your own keystore? [no]:

មិនអើពើនឹងការព្រមាន និងបញ្ជាក់ការនាំចូលវិញ្ញាបនបត្រជាមួយនឹងការដាក់ y.

នាំចូលវិញ្ញាបនបត្រកម្រិតមធ្យមទីពីរ៖

keytool -import -trustcacerts -alias intermediate2 -file intermediate_2.crt -keystore yourkeystore.jks

ដែលជាកន្លែងដែល:

  • intermediate2 គឺជាឈ្មោះ Alias នៃវិញ្ញាបនបត្រ CA កម្រិតមធ្យមទីពីរដែលបាននាំចូល
  • intermediate_2.crt គឺជាឈ្មោះ/ផ្លូវពិតប្រាកដនៃវិញ្ញាបនបត្រ CA កម្រិតមធ្យមទីពីររបស់អ្នក។

នាំចូលវិញ្ញាបនបត្រកម្រិតមធ្យមដំបូង៖

keytool -import -trustcacerts -alias intermediate1 -file intermediate_1.crt -keystore yourkeystore.jks

ដែលជាកន្លែងដែល:

  • intermediate1 គឺជាឈ្មោះ Alias នៃវិញ្ញាបនបត្រ CA កម្រិតមធ្យមដំបូងដែលបាននាំចូល
  • intermediate_1.crt គឺជាឈ្មោះ/ផ្លូវពិតប្រាកដនៃវិញ្ញាបនបត្រ CA កម្រិតមធ្យមដំបូងរបស់អ្នក។

បន្ទាប់ពីការនាំចូលដោយជោគជ័យនៃវិញ្ញាបនបត្រខាងលើនីមួយៗ អ្នកគួរតែទទួលបានលទ្ធផលដូចខាងក្រោម៖

Certificate was added to keystore

នាំចូលវិញ្ញាបនបត្រ end-entity សម្រាប់ដែនរបស់អ្នក៖

keytool -import -trustcacerts -alias tomcat -file certificate.crt -keystore yourkeystore.jks

ដែលជាកន្លែងដែល:

  • tomcat គឺជាឈ្មោះ Alias ពិតប្រាកដនៃ keystore របស់អ្នក។ ឈ្មោះ Alias សម្រាប់វិញ្ញាបនបត្រ end-entity របស់អ្នកគួរតែដូចគ្នានឹងអ្វីដែលអ្នកបានប្រើនៅពេលបង្កើត Keystore ដោយប្រើ Private Key ។ ប្រសិនបើអ្នកមិនបានបញ្ជាក់ឈ្មោះ Alias កំឡុងពេលបង្កើត keystore តម្លៃលំនាំដើមនឹងមាន mykey.
  • certificate.crt គឺជាឈ្មោះ/ផ្លូវពិតប្រាកដនៃឯកសារវិញ្ញាបនបត្រ end-entity របស់អ្នក។

បន្ទាប់​ពី​នាំចូល​វិញ្ញាបនបត្រ​ end-entity សារ​ខាង​ក្រោម​នឹង​ត្រូវ​បាន​ផ្តល់៖

Certificate reply was installed in keystore

ជំហានទី 3: កែសម្រួលឧបករណ៍ភ្ជាប់

នៅជំហានបន្ទាប់ អ្នកនឹងត្រូវកែប្រែឧបករណ៍ភ្ជាប់សម្រាប់ច្រកលំនាំដើម 8443 ឬ 443។

ការកែប្រែគួរតែធ្វើឡើងនៅក្នុង ‘Tomcat installation directory’/conf/server.xml file។ អ្នកអាចស្វែងរកទីតាំងនៃថតដែលមាន server.xml configuration file ដោយចេញពាក្យបញ្ជាខាងក្រោម៖

sudo find / -ipath '*tomcat*server.xml'

ភាគច្រើនទំនងជាវានឹងស្ថិតនៅក្នុង /opt/tomcat/conf/server.xml or /etc/tomcat/server.xml

នេះគឺជាឧទាហរណ៍នៃឧបករណ៍ភ្ជាប់ JSSE សម្រាប់ច្រក 443 ដោយប្រើពិធីការ HTTP/1.1 រួមជាមួយ TLS រហូតដល់ 1.3 កំណែពិធីការ៖

<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="443"
maxThreads="200"
scheme="https"
secure="true"
SSLEnabled="true"
keystoreFile="/opt/tomcat/ssl/yourkeystore.jks"
keystorePass="keystore_password"
clientAuth="false"
sslProtocol="TLS"/>

ដែលជាកន្លែងដែល:

  • /opt/tomcat/ssl/yourkeystore.jks គឺជាផ្លូវដាច់ខាត និងឈ្មោះពិតនៃឯកសារ keystore
  • keystore_password គឺជាពាក្យសម្ងាត់ពិតប្រាកដសម្រាប់ Keystore របស់អ្នក។

ជំហានទី 4: អនុវត្តការផ្លាស់ប្តូរ

នៅពេលរួចរាល់ សូមចាប់ផ្តើម Tomcat ឡើងវិញ ដើម្បីអនុវត្តការផ្លាស់ប្តូរ។ ប្រសិនបើអ្នកមិនច្បាស់អំពីជំហានក្នុងការផលិតឡើងវិញ អ្នកអាចចូលទៅកាន់ចំណងជើង អនុវត្តការផ្លាស់ប្តូរ នៅក្នុងអត្ថបទនេះ ដើម្បីអនុវត្តការផ្លាស់ប្តូរ និងផ្ទៀងផ្ទាត់ការដំឡើង SSL។

PKCS #12

ប្រសិនបើអ្នកមិនបានបើក APR នៅលើ Apache Tomcat ទេ វិធីសាស្ត្រនៃការដំឡើង SSL នេះគឺជាតុល្យភាពដ៏ល្អប្រសើររវាងវិធីសាស្ត្រនាំចូល PKCS#7 និង PEM។ PKCS#12 គឺជាស្តង់ដារវិញ្ញាបនបត្រ នៅពេលដែលផ្នែកដែលត្រូវការទាំងអស់ (វិញ្ញាបនបត្រផ្នែកបញ្ចប់សម្រាប់ឈ្មោះម៉ាស៊ីន កញ្ចប់ CA និងកូនសោឯកជន) ត្រូវបានរក្សាទុកក្នុងឯកសារដូចគ្នា។

ជំហានទី 1: រៀបចំឯកសារ SSL

មានអារម្មណ៍សេរីដើម្បីលោតទៅផ្នែកបន្ទាប់ ប្រសិនបើអ្នកមានវិញ្ញាបនបត្រ PKCS#12 (.pfx/.p12) រួចហើយ។ ប្រសិនបើអ្នកមិនមានមួយ, បំប្លែងឯកសារដែលត្រូវគ្នាជាមុនសិន.

ជំហានទី 2: កែប្រែឃ្លាំងសម្ងាត់

ឯកសារ PKCS#12 ត្រូវបានចាត់ទុកថាជាឃ្លាំងសម្ងាត់នៅក្នុងខ្លួនវាផ្ទាល់។ ដូច្នេះ អ្នកគ្រាន់តែត្រូវបញ្ជាក់ផ្លូវទៅកាន់ឯកសារ PKCS#12 នៅក្នុងការណែនាំរបស់ keystoreFile។ ដំណើរការគឺដូចគ្នាបេះបិទ PKCS7 និង PEM ស្តង់ដារ។

ការកែប្រែគួរតែធ្វើឡើងនៅក្នុង ‘Tomcat installation directory’/conf/server.xml file។ អ្នកអាចស្វែងរកទីតាំងនៃថតដែលមាន server.xml configuration file ដោយចេញពាក្យបញ្ជាខាងក្រោម៖

sudo find / -ipath '*tomcat*server.xml'

វានឹងទំនងជានៅក្នុង /opt/tomcat/conf/server.xml or /etc/tomcat/server.xml.

នេះគឺជាឧទាហរណ៍នៃ PKCS#12 JSSE connector សម្រាប់ច្រក 443 ដោយប្រើ HTTP/1.1 protocol រួមជាមួយ TLS រហូតដល់ 1.3 protocol versions៖

<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="443"
maxThreads="200"
scheme="https"
secure="true"
SSLEnabled="true"
keystoreFile="/opt/tomcat/ssl/somefile.pfx"
keystorePass="password_from_your_pfx"
keystoreType="PKCS12"
clientAuth="false"
sslProtocol="TLS"/>

ដែលជាកន្លែងដែល:

  • /opt/tomcat/ssl/somefile.pfx គឺជាផ្លូវដាច់ខាត និងឈ្មោះពិតសម្រាប់វិញ្ញាបនបត្រ PKCS#12
  • password_from_your_pfx គឺជាពាក្យសម្ងាត់ពិតប្រាកដសម្រាប់ឯកសារ PKCS#12

ចំណាំ (Note)៖ ក្នុងគ្រប់ករណីទាំងអស់នៅពេលអ្នកប្រើឯកសារ PKCS12 "keystoreType" ការណែនាំគួរតែត្រូវបានបញ្ជាក់នៅក្នុងការកំណត់រចនាសម្ព័ន្ធ SSL ដើម្បីកំណត់ថាទម្រង់ Keystore គឺ PKCS#12 សម្រាប់ Server ដើម្បីអានឯកសារឱ្យបានត្រឹមត្រូវ។

ជំហានទី 3: បញ្ចប់ការដំឡើង SSL

នៅពេលរួចរាល់ សូមចាប់ផ្តើម Tomcat ឡើងវិញ ដើម្បីអនុវត្តការផ្លាស់ប្តូរ។ ប្រសិនបើអ្នកមិនច្បាស់អំពីជំហានក្នុងការផលិតឡើងវិញទេ សូមរំលងទៅផ្នែកនេះ ដើម្បីអនុវត្តការផ្លាស់ប្តូរ និងផ្ទៀងផ្ទាត់ការដំឡើង SSL។

ការដំឡើងផ្អែកលើ APR

Linux ភាគច្រើនចែកចាយកញ្ចប់ដឹកជញ្ជូនសម្រាប់ APR ក្រៅប្រអប់។ នៅតែ, បន្ថែម libtcnative, libapr1-dev និង libssl-dev packages តម្រូវឱ្យ APR ដំណើរការបានត្រឹមត្រូវជាមួយ Tomcat (ប្រសិនបើអ្នកមិនទាន់បានដំឡើងពួកវានៅឡើយ)។ បណ្ណាល័យដើម Tomcat ក៏ត្រូវចងក្រងផងដែរ។ យើងមិននិយាយអំពីប្រធានបទនេះនៅក្នុងការណែនាំនេះទេ។ វាត្រូវបានសន្មត់ថាអ្នកមាន APR រួចហើយ រៀបចំ ជាមួយ Tomcat ។ ប្រសិនបើគ្មាន APR ត្រូវបានតំឡើងនៅលើ Apache Tomcat របស់អ្នកទេ សូមពិនិត្យមើលវានៅចំណងជើង តម្រូវការទុកជាមុន នៅដើមអត្ថបទនេះ។

ជំហានទី 1: ផ្ទុកឡើងឯកសារ

ជាដំបូង សូមបង្ហោះវិញ្ញាបនបត្រ Private Key និងកញ្ចប់ CA (ប្រសិនបើសំណើចុះហត្ថលេខាលើវិញ្ញាបនបត្រត្រូវបានបង្កើតនៅកន្លែងផ្សេង) ទៅកាន់ Server។

ជំហានទី 2: កំណត់រចនាសម្ព័ន្ធឧបករណ៍ភ្ជាប់

បន្ទាប់មក កែប្រែឧបករណ៍ភ្ជាប់ដែលមានស្រាប់សម្រាប់ច្រកលំនាំដើម 8443 ឬ 443។ ការកែប្រែគួរតែធ្វើឡើងនៅក្នុង ‘Tomcat installation directory’/conf/server.xml file.

អ្នកអាចស្វែងរកទីតាំងនៃថតដែលមានឯកសារកំណត់រចនាសម្ព័ន្ធ server.xml ដោយចេញពាក្យបញ្ជាខាងក្រោម៖

sudo find / -ipath '*tomcat*server.xml'

វានឹងទំនងជានៅក្នុង /opt/tomcat/conf/server.xml or /etc/tomcat/server.xml

នេះគឺជាឧទាហរណ៍នៃឧបករណ៍ភ្ជាប់ APR សម្រាប់ច្រក 443 ដោយប្រើពិធីការ HTTP/1.1 រួមជាមួយ TLS1.1 & TLS1.2 បានបើក៖

<Connector
protocol="org.apache.coyote.http11.Http11AprProtocol"
port="443"
maxThreads="200"
scheme="https"
secure="true"
SSLEnabled="true"
SSLCertificateFile="/opt/tomcat/ssl/cert.crt"
SSLCertificateChainFile="/opt/tomcat/ssl/bundle.ca-bundle"
SSLCertificateKeyFile="/opt/tomcat/ssl/private.key"
SSLVerifyClient="optional"
SSLProtocol="TLSv1.1+TLSv1.2"/>

ដែលជាកន្លែងដែល:

  • /opt/tomcat/ssl/cert.crt គឺជាផ្លូវដាច់ខាត និងឈ្មោះពិតនៃវិញ្ញាបនបត្រដែលធ្វើទ្រង់ទ្រាយ PEM
  • /opt/tomcat/ssl/bundle.ca-bundle គឺជាផ្លូវដាច់ខាត និងឈ្មោះពិតនៃឯកសារកញ្ចប់ CA
  • /opt/tomcat/ssl/private.key គឺជាផ្លូវដាច់ខាត និងឈ្មោះពិតនៃឯកសារ Private Key

ចំណាំសំខាន់៖ ឧបករណ៍ភ្ជាប់ APR តម្រូវឱ្យអ្នកកំណត់ការណែនាំ SSLCertificateChainFile យ៉ាងច្បាស់លាស់។ វាមិនអាចដំឡើងវិញ្ញាបនបត្របានត្រឹមត្រូវជាមួយនឹងឯកសារតែមួយដែលមានទាំងវិញ្ញាបនបត្រ end-entity និង CA bundle chain ដូចជាវាត្រូវបានធ្វើនៅលើ Apache 2.4.8 និងខ្ពស់ជាងនេះ។ ប្រសិនបើមានតែ SSLCertificateFile ត្រូវបានកំណត់នៅក្នុងឧបករណ៍ភ្ជាប់ នោះវិញ្ញាបនបត្រដំបូងពីឯកសារនឹងត្រូវបានយកមកវិញក្នុងអំឡុងពេលចាប់ដៃ ដែលអាចបង្កឱ្យមានកំហុស ERR_CERT_AUTHORITY_INVALID ។

សំខាន់៖ ការកំណត់ការអនុញ្ញាតចូលប្រើ
នៅពេលដំឡើងវិញ្ញាបនបត្រសម្រាប់ឧបករណ៍ភ្ជាប់ APR អ្នកអាចជួបប្រទះសារកំហុសខាងក្រោម៖

WARNING [main] org.apache.tomcat.util.net.openssl.OpenSSLContext.init Error initializing SSL context java.lang.Exception: Unable to load certificate key /opt/tomcat/ssl/private.key (error:0200100D:system library:fopen:Permission denied)

វាត្រូវបានបង្កឡើងដោយការអនុញ្ញាតចូលប្រើមិនត្រឹមត្រូវដែលបានកំណត់សម្រាប់វិញ្ញាបនបត្រ និងឯកសារ Private Key ។ អ្នកត្រូវធ្វើឱ្យអ្នកប្រើប្រាស់ tomcat របស់អ្នកជាម្ចាស់វិញ្ញាបនបត្រ និងឯកសារ Private Key។ ប្រើពាក្យបញ្ជាខាងក្រោមដើម្បីសម្រេចវា៖

sudo chown tomcat /etc/ssl/private.key /etc/ssl/cert.crt

ដែលជាកន្លែងដែល /opt/tomcat/ssl គឺជាថតដែលមានវិញ្ញាបនបត្រ និងឯកសារ Private Key រៀងៗខ្លួន និង tomcat គឺជាអ្នកប្រើប្រាស់ tomcat របស់អ្នក។

ត្រូវដឹងថា Tomcat មានភាពរសើបក្នុងការអនុញ្ញាត ដូច្នេះវានឹងមិនអាចប្រើវិញ្ញាបនបត្រ & Private Key ឬឯកសាររក្សាទុក Key ដែលបានរក្សាទុកក្នុង /root ឬថតដែលដាក់កម្រិតការចូលប្រើស្រដៀងគ្នានោះទេ។

ជំហានទី 3: អនុវត្តការផ្លាស់ប្តូរ

នៅពេលរួចរាល់ សូមចាប់ផ្តើម Tomcat ឡើងវិញ ដើម្បីអនុវត្តការផ្លាស់ប្តូរ។ ប្រសិនបើអ្នកមិនច្បាស់អំពីជំហានក្នុងការផលិតឡើងវិញទេ សូមរំកិលទៅកាន់ចំណងជើង អនុវត្តការផ្លាស់ប្តូរ ខាងក្រោមនៅក្នុងអត្ថបទនេះ ដើម្បីអនុវត្តការផ្លាស់ប្តូរ និងផ្ទៀងផ្ទាត់ការដំឡើង SSL។

អនុវត្តការផ្លាស់ប្តូរ

រក្សាទុកការផ្លាស់ប្តូរ ហើយចាប់ផ្តើម Tomcat ឡើងវិញតាមរយៈសេវា systemd ប្រសិនបើមានណាមួយដូចជា៖

sudo systemctl restart tomcat

ឬដោយប្រើប្រព័ន្ធគោលពីរ។ ទាំងនេះទំនងជាត្រូវបានរកឃើញនៅក្នុងទីតាំងខាងក្រោម៖

/opt/tomcat/bin/shutdown.sh
/opt/tomcat/bin/startup.sh

ទោះយ៉ាងណាក៏ដោយ ទីតាំងរបស់ Tomcat binaries អាចប្រែប្រួលរវាងការដំឡើង។ អ្នកអាចស្វែងរកទីតាំងនៃការចាប់ផ្តើម និងបិទឯកសារប្រព័ន្ធគោលពីរ ដោយប្រតិបត្តិពាក្យបញ្ជាខាងក្រោម៖

sudo find / -ipath '*tomcat*\/s[h t]*.sh'

អ្នកនឹងមានឯកសារ 2 នៅក្នុងលទ្ធផល។ ពួកគេគួរតែត្រូវបានប្រើសម្រាប់ការចាប់ផ្តើម Tomcat ឡើងវិញ។ ដំណើរការពាក្យបញ្ជាខាងក្រោមតាមលំដាប់ដូចខាងក្រោម ដើម្បីចាប់ផ្តើម Server ឡើងវិញ៖

sudo sh /opt/tomcat/bin/shutdown.sh
sudo sh /opt/tomcat/bin/startup.sh

ដែលជាកន្លែងដែល:

  • /opt/tomcat/bin/shutdown.sh គឺជាផ្លូវដាច់ខាតទៅកាន់ shutdown.sh ឯកសារពីលទ្ធផលមុន។
  • /opt/tomcat/bin/startup.sh គឺជាផ្លូវដាច់ខាតទៅកាន់ startup.sh ឯកសារពីលទ្ធផលមុន។

នៅពេលចាប់ផ្តើមឡើងវិញ សូមមានអារម្មណ៍ដោយឥតគិតថ្លៃដើម្បីពិនិត្យមើលការដំឡើង SSL ដោយប្រើ ឧបករណ៍អនឡាញនេះ.

ការ​ដោះស្រាយ​បញ្ហា

មើលមាតិកា keystore

ប្រើពាក្យបញ្ជានេះដើម្បីពិនិត្យមើលវិញ្ញាបនបត្រដែលបានឌិកូដដែលបាននាំចូលនៅក្នុង Keystore ។ សម្រាប់វិញ្ញាបនបត្រដែលបាននាំចូលត្រឹមត្រូវនីមួយៗ អ្នកនឹងឃើញព័ត៌មានលម្អិតរបស់វានៅក្នុងធាតុ Keystore ។ ធាតុ Private Key ត្រូវបានបង្ហាញក្នុងបញ្ជីផងដែរ៖

keytool -list -keystore yourkeystore.jks -v

លទ្ធផលគួរតែស្រដៀងនឹងបញ្ជីខាងក្រោម៖

$ keytool -list -keystore yourkeystore.jks -v
Enter keystore password:
Keystore type: PKCS12
Keystore provider: SUN

Your keystore contains 4 entries

...

Alias name: tomcat
Creation date: Mar 13, 2020
Entry type: PrivateKeyEntry
Certificate chain length: 4
Certificate[1]:
Owner: CN=example.com
Issuer: CN=Sectigo RSA Domain Validation Secure Server CA, O=Sectigo Limited, L=Salford, ST=Greater Manchester, C=GB
Serial number: 45<...>76
Valid from: Fri Mar 13 00:00:00 UTC 2020 until: Tue Mar 09 23:59:59 UTC 2021
Certificate fingerprints:
SHA1: 4A:BA<...>67:BE
SHA256: D8:9D<...>3D:D3
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3

ដើម្បីមើលមាតិកា Keystore ជាមួយវិញ្ញាបនបត្រដែលបានអ៊ិនកូដរៀងៗខ្លួនជាអត្ថបទធម្មតា (រចនាប័ទ្ម RFC) សូមប្រើពាក្យបញ្ជាខាងក្រោម៖

keytool -list -rfc -keystore yourkeystore.jks

លទ្ធផលគួរតែស្រដៀងនឹងបញ្ជីខាងក្រោម៖

$ keytool -list -rfc -keystore yourkeystore.jks
Enter keystore password:
Keystore type: PKCS12
Keystore provider: SUN

Your keystore contains 4 entries

...

Alias name: tomcat
Creation date: Mar 13, 2020
Entry type: PrivateKeyEntry
Certificate chain length: 4
Certificate[1]:
-----BEGIN CERTIFICATE-----
MIIFvTCCBKWgAwIBAgIQRQgwqjjPDLDCtR8R7NN1djANBgkqhkiG9w0BAQsFADCB
...
6NB/mQXfhuiyeBSe4jTmr4nja6JXvjQU1GUOgrv08KuU
-----END CERTIFICATE-----

ទាញយក Private Key ពី Keystore

វាមិនអាចទៅរួចទេក្នុងការទាញយក Private Key ពី Keystore ដោយផ្ទាល់ ប៉ុន្តែមានដំណោះស្រាយជាមួយ OpenSSL ។ អ្នកនឹងត្រូវ៖

  1. បំលែងឯកសារ Java keystore ទៅជាឯកសារស្តង់ដារ PKCS#12;
  2. យកឯកសារ PKCS#12 បំប្លែងទៅជាឯកសារ Private Key ដែលបានអ៊ិនកូដ PEM ដាច់ដោយឡែក ឧ. នាំចេញ Private Key ។
  3. មើលមាតិកានៃឯកសារ Private Key ដែលបានបង្កើតថ្មី។

អនុវត្តតាមពាក្យបញ្ជាខាងក្រោមដើម្បីចាប់ផ្តើមដំណើរការ៖

  1. keytool -importkeystore -srckeystore yourkeystore.jks -destkeystore somefile.pfx -srcstoretype JKS -deststoretype PKCS12 -deststorepass password_from_your_pfx
ចំណាំ (Note):
កំណែ Java មួយចំនួនដែលកំពុងដំណើរការ Tomcat (ឬ servlet container ផ្សេងទៀតដោយប្រើ keytool ជា Private/Public keys management shell) មានផ្នែកបន្ថែមឯកសារដែលចូលចិត្តខុសៗគ្នាសម្រាប់ PKCS#12 (ឧ. កំណែចាស់ដូចជា JDK 1.6 និងមុននេះអាចបង្កើតឯកសារ .p12)។ កំណែដែលមានស្ថេរភាពបច្ចុប្បន្នជាធម្មតាបង្កើតឯកសារ .pfx ។ ខ្លឹមសារឯកសារនៃឯកសារ .p12 និង .pfx គឺដូចគ្នាបេះបិទ។
  1. openssl pkcs12 -in somefile.pfx -out private.key -nocerts -nodes
  2. cat private.key

ត្រូវ​ដឹង​ថា​ Private Key ​ដែល​បាន​នាំ​ចេញ​អាច​មាន​គុណលក្ខណៈ​បន្ថែម (ដូចជា​គុណលក្ខណៈ​កាបូប ឬ​គុណលក្ខណៈ​សោ) រួម​ជាមួយ​នឹង​កូដ​សោ​ខ្លួន​ឯង។ នៅ​ក្នុង​ឯកសារ​លទ្ធផល សូម​មាន​អារម្មណ៍​សេរី​ក្នុង​ការ​ដក​ជួរ ~ 4 ដំបូង​ដែល​ឈរ​នៅ​ពី​មុខ -----BEGIN PRIVATE KEY----- ស្លាក។

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

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

Domains

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

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

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

Cloud Server

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

Shared Hosting

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

Cloud Hosting

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

WordPress Hosting

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

ភាពជាដៃគូ AWS

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

ការព្រមានអំពីទម្រង់ Keystore ដែលមានកម្មសិទ្ធិ

ប្រសិនបើអ្នកបានដំឡើងកំណែ JDK ចាស់ជាងកំណែ 9 នោះ keystore នឹងត្រូវបានបង្កើតក្នុងទម្រង់ JKS (ដែលមិនគួរច្រឡំជាមួយផ្នែកបន្ថែមឯកសារ)។ openjdk environment ទាន់សម័យបច្ចុប្បន្ននឹងផ្តល់ការព្រមានខាងក្រោមសម្រាប់ Keystore បែបនេះ៖

The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format ..."

អ្នកប្រហែលជាអាចមិនអើពើនឹងការព្រមាន ហើយដំឡើងវិញ្ញាបនបត្រដូចធម្មតា។ ទោះយ៉ាងណាក៏ដោយ ដើម្បីរក្សាសុវត្ថិភាព អ្នកគួរតែបំប្លែង JKS keystore ទៅជាទម្រង់ PKCS#12 សម្រាប់ជាប្រយោជន៍នៃភាពត្រូវគ្នា។ អ្នកអាចប្រើពាក្យបញ្ជាខាងក្រោមដើម្បីបំប្លែងប្រភេទ keystore នេះ៖

keytool -importkeystore -srckeystore yourkeystore.jks -destkeystore yourkeystore.jks -deststoretype pkcs12

ដែលជាកន្លែងដែល yourkeystore.jks គឺជាឈ្មោះ/ផ្លូវពិតប្រាកដទៅកាន់ឯកសារ keystore របស់អ្នក។

នៅពេលរួចរាល់ អ្នកអាចពិនិត្យមើលប្រភេទ keystore ដោយរាយបញ្ជីមាតិកា keystore នៅក្បាល មើលមាតិកា keystore នៅក្នុងអត្ថបទនេះ។

លទ្ធផលជោគជ័យនឹងផ្តល់ការព្រមានដោយបញ្ជាក់ថា Keystore ពីមុនក្នុងទម្រង់ JKS ត្រូវបានបម្រុងទុកក្នុងឯកសារដាច់ដោយឡែកមួយ៖

Migrated "yourkeystore.jks" to PKCS12. The JKS keystore is backed up as "yourkeystore.jks.old".