Resin 4.0 部署SSL证书
前言
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>:支持的协议。