ការណែនាំនេះគឺសំដៅលើបុគ្គលដែលមាន 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 រៀងៗខ្លួន។
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
គឺជាផ្លូវដាច់ខាត និងឈ្មោះពិតនៃឯកសារ keystorekeystore_password
គឺជាពាក្យសម្ងាត់ពិតប្រាកដសម្រាប់ Keystore របស់អ្នក។
ជំហានទី 3៖ អនុវត្តការផ្លាស់ប្តូរ
នៅពេលរួចរាល់ សូមចាប់ផ្តើម Tomcat ឡើងវិញ ដើម្បីអនុវត្តការផ្លាស់ប្តូរ។ ប្រសិនបើអ្នកមិនច្បាស់អំពីជំហានក្នុងការផលិតឡើងវិញទេ សូមរំកិលទៅផ្នែកនេះ អនុវត្តការផ្លាស់ប្តូរ ដើម្បីអនុវត្តការផ្លាស់ប្តូរ និងផ្ទៀងផ្ទាត់ការដំឡើង SSL ។
PEM
វិធីនៃការដំឡើងវិញ្ញាបនបត្រ SSL នៅលើ Tomcat ដ៏លំបាកបំផុតគឺដោយប្រើវិញ្ញាបនបត្រ SSL ដែលធ្វើទ្រង់ទ្រាយ PEM ដាច់ដោយឡែក។
ជំហានទី 1: រៀបចំឯកសារ
វិធីសាស្ត្រនេះតម្រូវឱ្យអ្នកមានវិញ្ញាបនបត្រនីមួយៗត្រូវបានរក្សាទុកក្នុងឯកសារដាច់ដោយឡែក៖
- វិញ្ញាបនបត្រឫសគល់ CA ។
- CA second intermediate certificate (ជាជម្រើស និងអាចត្រូវបានលុបចោល ប្រសិនបើកញ្ចប់ CA របស់អ្នកមានវិញ្ញាបនបត្រកម្រិតមធ្យម 1 ប៉ុណ្ណោះ)។
- វិញ្ញាបនបត្រកម្រិតមធ្យម CA ។
- វិញ្ញាបនបត្រអង្គភាពចុងក្រោយសម្រាប់ ឈ្មោះដែន.
លំដាប់នៃវិញ្ញាបនបត្រនឹងមានដូចខាងក្រោមសម្រាប់ការប្រើប្រាស់ញឹកញាប់បំផុត 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
គឺជាផ្លូវដាច់ខាត និងឈ្មោះពិតនៃឯកសារ keystorekeystore_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#12password_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 ។ អ្នកនឹងត្រូវ៖
- បំលែងឯកសារ Java keystore ទៅជាឯកសារស្តង់ដារ PKCS#12;
- យកឯកសារ PKCS#12 បំប្លែងទៅជាឯកសារ Private Key ដែលបានអ៊ិនកូដ PEM ដាច់ដោយឡែក ឧ. នាំចេញ Private Key ។
- មើលមាតិកានៃឯកសារ Private Key ដែលបានបង្កើតថ្មី។
អនុវត្តតាមពាក្យបញ្ជាខាងក្រោមដើម្បីចាប់ផ្តើមដំណើរការ៖
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 គឺដូចគ្នាបេះបិទ។ |
openssl pkcs12 -in somefile.pfx -out private.key -nocerts -nodes
cat private.key
ត្រូវដឹងថា Private Key ដែលបាននាំចេញអាចមានគុណលក្ខណៈបន្ថែម (ដូចជាគុណលក្ខណៈកាបូប ឬគុណលក្ខណៈសោ) រួមជាមួយនឹងកូដសោខ្លួនឯង។ នៅក្នុងឯកសារលទ្ធផល សូមមានអារម្មណ៍សេរីក្នុងការដកជួរ ~ 4 ដំបូងដែលឈរនៅពីមុខ -----BEGIN PRIVATE KEY-----
ស្លាក។
ការព្រមានអំពីទម្រង់ 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".