前言
Resin目前最新的版本還是4.0 (4.0.49),使用Java EE6,在Resin上部署證書,一般有兩種方式,首先我們推薦采用Openssl方式,不僅因為Openssl模式下的速度更快,而且Openssl對TLS的支持更好,安全性高;另外一種JSSE方式,不僅速度慢,而且JSSE6僅支持TLS1.0。
我們在下面會分別介紹這2種模式。
查找中間證書
如果采用Openssl模式部署證書,為了確保兼容到所有瀏覽器,我們必須部署中間證書,如果不這么做,雖然安裝過程並不會報錯,但可能導致Android系統,Chrome 和 Firefox等瀏覽器無法識別。請到 中間證書下載工具,輸入您的Server.cer,然后下載中間證書,請將中間證書保存為Chain.cer。
制作JKS文件
JKS(Java Keystroe)文件是我們后面用來部署JSSE模式下所需要的文件。
請將收到的Server.cer和Server.key文件,到 JKS在線合成工具 合成一個新的JKS文件。在這里需要設置2個參數:
請將收到的Server.cer和Server.key文件,到 JKS在線合成工具 合成一個新的JKS文件。在這里需要設置2個參數:
- 別名:導入到JKS中的密鑰對的索引名稱,可以設置為“ssl”。
- 密碼:訪問JKS的密碼。
部署SSL證書
Openssl模式
打開Resin.xml,增加下面配置:
<resin xmlns="http://caucho.com/ns/resin"> <cluster id="http-tier"> <server id="a" address="192.168.1.12"> <http port="443"> <openssl> <certificate-file>keys/server.cer</certificate-file> <certificate-key-file>keys/server.key</certificate-key-file> <password>my-password</password> <certificate-chain-file>keys/chain.cer</certificate-chain-file> <cipher-suite>ALL:!ADH:+HIGH:+MEDIUM:!NULL:!DH:!RC4:!DES" </cipher-suite> <protocol>tlsv1 tls1.1 tls1.2</protocol> </openssl> </http> </server> ... </resin>
說明:
- <certificate-file>:服務器證書文件。
- <certificate-key-file>:服務器證書的私鑰文件。
- <password>:服務器證書私鑰文件的密碼,如果原私鑰文件沒有密碼,可以運行如下openssl命令:
openssl rsa -in server.key -des -out serverpass.key -passout pass:123456
- <certificate-chain-file>:中間證書文件。
- <cipher-suite>:加密套件設定。
- <protocol>:協議說明,一般只打開TLS 1 , TLS 1.1, TLS 1.2協議。
JSSE模式
打開resin.xml,增加以下參數:
<resin xmlns="http://caucho.com/ns/resin"> <cluster id=""> <server-default> <http port="443"> <jsse-ssl> <key-store-type>jks</key-store-type> <key-store-file>keys/server.keystore</key-store-file> <password>changeit</password> <protocol>-sslv3</protocol> </jsse-ssl> </http> </server-default> ... </cluster> </resin>
說明:
- <key-store-type>:設定Keystore文件的類型,這里一般都設為jks。
- <key-store-file>:JKS文件名。
- <password>:JKS文件的密碼。
- <protocol>:支持的協議。