首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >给tomcat7配置SSL证书

给tomcat7配置SSL证书

作者头像
jeremyxu
发布2018-05-10 17:28:01
3.4K0
发布2018-05-10 17:28:01
举报

今天工作中需要给tomcat7配置SSL证书,以使用https访问tomcat服务。以前都是自签名,照着网上的文档完成的,这回有一点不同的是https证书已经从GoDaddy买回来了,配置过程中遇到了一点坑,这里记录一下。

tomcat7配置SSL证书

从GoDaddy买来的证书包括3个文件,test.com.key, test.com.crt, godaddy_intermediate.crt。这里稍微解释一下,这3个文件。

test.com.key是私钥文件,文件内容如下:

-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----

test.com.crt是私钥对应的证书,文件内容如下:

-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

godaddy_intermediate.crt是GoDaddy的一些中级证书,内容如下:

123456

-----BEGIN CERTIFICATE-----...-----END CERTIFICATE----------BEGIN CERTIFICATE-----...-----END CERTIFICATE-----

在网上查了下,需要先根据这3个文件生成p12文件,命令如下:

1

openssl pkcs12 -export -inkey test.com.key -in test.com.crt -chain -CAfile godaddy_intermediate.crt -out tomcatserver.p12 -name tomcatserver -passout pass:123456

不过我执行这行命令时,报错了:

1

Error unable to get issuer certificate getting chain.

又到处查阅文档,发现需要将Go_Daddy_Class_2_CA.pemgodaddy_intermediate.crt合并,得到ca_bundle.crt,以保证CA链可以到达根证书颁发节点,到处都是坑啊。

1

cat /etc/ssl/certs/Go_Daddy_Class_2_CA.pem godaddy_intermediate.crt > ca_bundle.crt

然后再执行上面的命令,p12文件就生成好了。

1

openssl pkcs12 -export -inkey test.com.key -in test.com.crt -chain -CAfile ca_bundle.crt -out tomcatserver.p12 -name tomcatserver -passout pass:123456

用portecle打开看一下,这个KeyPair的证书详情表明CA链上确实有4个证书。

p12_portecle_open.png
p12_portecle_open.png

p12_portecle_open.png

再将p12的keystore转化为jks的keystore。

1

keytool -importkeystore -v -srckeystore tomcatserver.p12 -srcstoretype pkcs12 -srcstorepass 123456 -destkeystore tomcatserver.jks -deststoretype jks -deststorepass 123456

这样就得到了jks格式的keystore文件tomcatserver.jks。

最后在tomcat7的server.xml修改配置。

<Connector
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8443" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="/somewhere/tomcatserver.jks" keystorePass="123456"
           clientAuth="false" sslProtocol="TLS"/>

Over!

申请SSL证书的通用步骤

上一节的步骤有些曲折,仔细研究了下,发现如果按一定步骤从头来申请SSL证书,还是比较简单的。

  • 生成私钥文件www.test.com.key 1openssl genrsa -out www.test.com.key 2048
  • 生成证书请求文件www.test.com.csr,下次证书过期了,还是同样方法生成一个新的证书请求文件

1

openssl req -new -sha256 -subj "/C=CN/ST=ProvinceName/L=CityName/O=OrgName/OU=OrgUnitName/CN=www.test.com" -key www.test.com.key -out www.test.com.csr

  • 到SSL证书提供商那里填写在线申请表,并提交www.test.com.csr文件,提交申请
  • SSL证书提供商证书审核通过后,将得到ca_bundle.crtwww.test.com.crt,于是就有这三个文件:www.test.com.keywww.test.com.crtca_bundle.crt
  • 用上述3个文件生成p12文件

1

openssl pkcs12 -export -inkey www.test.com.key -in www.test.com.crt -chain -CAfile ca_bundle.crt -out tomcatserver.p12 -name tomcatserver -passout pass:123456

  • 将p12文件转换为jks文件

1

keytool -importkeystore -v -srckeystore tomcatserver.p12 -srcstoretype pkcs12 -srcstorepass 123456 -destkeystore tomcatserver.jks -deststoretype jks -deststorepass 123456

参考

http://www.oschina.net/question/2266279_221175 http://www.fourproc.com/2010/06/23/create-a-ssl-keystore-for-a-tomcat-server-using-openssl-.html https://sg.godaddy.com/zh/help/tomcat-4x5x6x-renew-a-certificate-5355 https://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-11-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • tomcat7配置SSL证书
  • 申请SSL证书的通用步骤
  • 参考
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档