Nếu bạn có một private key, một SSL certificate và một certificate bundle, bạn có thể sử dụng OpenSSL để tạo ra một certificate keystore để cài đặt SSL cho Apache Tomcat.
Yêu cầu trước khi cài đặt SSL cho Apache Tomcat
Các yêu cầu sau cần để tạo một keystore cho Tomcat.
- OpenSSL : Thông thường cài đặt sẵn trên Linux hoặc Mac OSX
- Private key được tạo khi bạn generate CSR
- SSL certificate được cấp phát từ CA
- Certificate bundle được cấp phát từ CA
Nếu chưa có SSL (yêu cầu thứ 3, 4) thì chỉ cần đăng ký SSL giá rẻ của 123HOST, chỉ 200,000 VND/ năm
Các bước thực hiện cài đặt SSL cho Apache Tomcat
Ví dụ sau khi đã đăng ký SSL thành công và SSL đã được phát hành, tôi có các file sau:
- blog_123host_vn.crt
- COMODORSADomainValidationSecureServerCA.crt
- COMODORSAAddTrustCA.crt
- AddTrustExternalCARoot.crt
- blog_123host_vn.key
File blog_123host_vn.key là file khi tôi tạo CSR để submit request SSL được tạo ra. Còn lại các file trên là CA phát hành. Lúc này chúng ta cần gộp nội dung của 4 file blog_123host_vn.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt và AddTrustExternalCARoot.crt thành một với lệnh cat . Cụ thể:
cat blog_123host_vn.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > blog_123host_vn-bundle.crt
Như vậy sau khi gộp, chúng ta có 3 file sau:
- blog_123host_vn.crt
- blog_123host_vn.key
- blog_123host_vn-bundle.crt
Thực hiện lệnh sau để tạo ra file p12 keystore bundle từ private key, SSL certificate và certificate bundle trên
openssl pkcs12 -export -in blog_123host_vn.crt -inkey blog_123host_vn.key -out blog_123host_vn.p12 -name tomcat -CAfile blog_123host_vn-bundle.crt -caname root -chain
Điền password bất kỳ, ví dụ 123host khi được hỏi. Lưu ý phải nhớ password để cấu hình cho Tomcat. Sau khi lệnh trên hoàn tất, file keystore blog_123host_vn.p12 sẽ được tạo
Sử file cấu hình server.xml phần connector với keystoreType là PKCS12 :
keystoreType="PKCS12"
Ví dụ đoạn cấu hình mẫu:
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="C:\apache-tomcat-8.0.26\conf\ssl\blog_123host_vn.p12" keystoreType="PKCS12" keystorePass="123host"/>
Lưu file và restart Tomcat sau đó kiểm tra lại. Kiểm tra SSL có cài đặt đúng hay chưa có thể kiểm tra SSL tại đây