我这里用的是startssl提供的免费证书,startssl证书的申请可以参考下面链接:http://www.setsea.net/wordpress/post/2011/04/21/881.html
申请完后你会有一下三个文件,ssl.crt(公钥),ssl.key(密钥),ssl.p12(PKCS12格式的证书)
运行以下命令查看证书信息:
$ keytool -list -rfc -keystore ssl.p12 -storetype pkcs12
查看证书信息,主要是查看alias属性,下面生成keystore要用到,一般是这样一串字符串"[email protected] 的 startcom ltd. id",[email protected]是你注册startssl时的邮箱。
运行下面命令生成keystore
$ keytool -importkeystore -srckeystore keystore.p12 -srcstoretype PKCS12 -destkeystore keystore -srcalias "[email protected] 的 startcom ltd. id" -destkeypass changeit
srcalias是上面查到的别名。destkeypass密码默认是changeit
接下来合并证书(主要是因为火狐需要我们提供证书颁发者的根证书)
从StartSSL下载StartSSL CA证书:
$ wget http://cert.startssl.com/certs/ca.pem
从StartSSL下载StartSSL Class1 Sub CA证书:
$ wget http://cert.startssl.com/certs/sub.class1.server.ca.pem
合并ssl、sub.class1.server.ca.pem、ca.pem
$ cat sub.class1.server.ca.pem >> ssl.crt $ cat ca.pem >> ssl.crt
设置tomcat启动时不输入私钥密码
$ cp ssl.key ssl.key.tmp $ openssl rsa -in ssl.key.tmp -out ssl.key
把上面生成的keystore、ssl.crt、ssl.key放到tomcat的conf目录下,修改conf/server.xml配置。
添加如下配置:
<Connector port="9443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" keystoreFile="${catalina.base}/conf/keystore" keystorePass="changeit " keystoreType="PKCS12" SSLCertificateFile="${catalina.base}/conf/ssl.crt" SSLCertificateKeyFile="${catalina.base}/conf/ssl.key" SSLCACertificateFile="${catalina.base}/conf/ssl.crt" clientAuth="false" sslProtocol="TLS" />
其中主要是这三个参数
SSLCertificateFile sub class1证书
SSLCertificateKeyFile sub class1证书密码
SSLCACertificateFile 根证书(不设置这个参数的话火狐会不信任,因为它需要把startssl的根证书附上,因为是它颁发给你的)。
启动tomcat,完成。