1.申请证书
大概按照下面这个链接申请就ok
http://nginx.groups.wuyasea.com/articles/how-to-setup-godaddy-ssl-certificate-on-nginx/2
openssl genrsa -out my_site.key 2048
openssl req -new -keymy_site.key -out my_site.csr
申请的时候会填写一堆的东西,然后完了之后提交申请,通过之后会下载各种服务器相关的证书。
2.部署Nginx的SSL证书
nginx证书比较好配置
首先合并2个证书文件:
cat db_bundle.crt my_site.crt > mysite_combined.crt
然后设置一个不需要输入密码的私钥文件:
openssl rsa -in mysite.key -out mysite_nopass.key
接下来就是修改nginx的配置文件
server {
listen 443;
server_name mysite.com;
ssl on;
ssl_certificate mysite_combined.crt;
ssl_certificate_key mysite_nopass.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
}
3.部署Tomcat的SSL证书
首先你要保证你的JAVA环境(JDK)是在1.6及以上的,否则可能报错的。
部署tomcat的时候相当费劲,因为按照Godaddy的官方文档,基本上没法成功,重启tomcat的时候总是提示证书无效要么就是找不到tomcat别名。
后来搜索了很多其他论坛/网站,终于找到一个可行的办法,就是将证书格式转换成PKCS12格式的,然后再配置tomcat的server.xml。具体如下:
首先生成合并后的证书(这4个证书都是从Godaddy下载下来的):
cat gd_bundle.crt gd_cross_intermediate.crt gd_intermediate.crt mysite.crt > mysite_combined.crt
然后转换格式,加入私钥,其中mysite.key就是你的私钥文件(PEM格式文件,以BEGSIN RSA PRIVATE KEY开头)
openssl pkcs12 -export -in mysite_combined.crt -out cert.p12 -inkey mysite.key
输入你的私钥密码,然后输入两遍证书密码(相当于给cert.p12创建密码)
完成之后用下面命令查看证书是否正确
keytool --list -rfc -keystore cert.p12 -storetype pkcs12
如果看到以下信息,说明没问题,否则检查你自己的参数:
Alias name: 1
Creation date: xx, 2012
Entry type: PrivateKeyEntry
Certificate chain length: 4
接下来就是配置server.xml了
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="200" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
SSLEnabled="true"
keystoreFile="path to your cert.p12" keystorePass="passwd" keystoreType= "PKCS12"
/>
然后重启tomcat,就OK了。
参考:
http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html
http://www.velocityreviews.com/forums/t133914-tomcat-and-ssl-and-a-certificate-generated-by-verisign.html
http://www.jguru.com/faq/view.jsp?EID=532461
http://www.360doc.com/content/08/1226/11/14389_2201544.shtml
http://jasonw68.iteye.com/blog/679081
http://help.godaddy.com/article/5239
http://nginx.groups.wuyasea.com/articles/how-to-setup-godaddy-ssl-certificate-on-nginx/2