tomcat配置https,开启双向认证,第三方ca颁发可信证书
RSA不同服务器需要配置:keystore.jks是私钥证书库,cacerts.jks是信任库。而一般我们生成一个keystore.jks就行,包含服务器密钥证书、和信任链证书,是两个证书保持一样。
1.生成对应我们需要的jks文件:

其中s1as使我们要配置的服务器含有私钥的证书,365是有效期单位天,keyalg申请的整数类型,keysize秘钥长度,keypass使我们服务器证书密码,-storepass对应我们生成jks文件的密码,-dname是我们后面生成证书的主题,这个要和ca给我们办法吻合。
2.生成证书请求
![]()
s1as.csr就是我们想要的证书请求,也可以做成pem形式均可。
3.拿到证书请求,我们去对应ca颁发相应证书,并且获得ca对应的信任证书,一般二级证书即可满足需求trustedcertEntry,用来验证证书的信任关系。

如图所示,aica就是我们的二级证书,CWCA为一级证书
先上传信任链证书,注意参数trustcacerts告诉这是一个trustCert,通常上传二级证书就可以了:

之后上传证书:
keytool -import -storepass changeit -keypass changeit -alias s1as -file luoni186.p7b -keystore keystore.jks
注意在导入的时候有时会报不是x.509证书错误,这个时候通常我们保存成p7b格式,用xca工具转换一下即可。
之后即可查看当前keystoreNew.jks:

里面trustedCertEntry即为我们上传的信任链证书,而privateKeyEntry即为我们的服务器含有私钥的证书。
4.若我们想删除里面s1as或者自己想重新上传一张额外的服务器证书。
第一步删除:
![]()
第二步生成密钥对:

第三步生成证书请求:
![]()
第四步上传证书,查看:

5.修改tomcat配置
找到server.xml,放开8443端口配置,也可以改为443.若改为443对应其他端口的 redirectPort也相应的改为443.
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile="conf/keystoreNew.jks"
keystorePass="changeit"
truststoreFile="conf/keystoreNew.jks"
truststorePass="changeit"/>
注释掉
<!--<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />-->
相应命令:
直接生成jks文件,也可以用转换工具将pfx文件转换为jks。
keytool -genkey -alias s1as -validity 7300 -keyalg RSA -keysize 2048 -keypass changeit -storepass changeit -dname "CN=中文测试,Email=test@test.com,OU=研究院,O=航信,L=北京,ST=Beijing,C=CN" -keystore "D:\keystore.jks"
证书请求,指定格式为pem
keytool -certreq -alias s1as -sigalg SHA1WithRSA -file "D:\req.pem" -keypass changeit -keystore "D:\keystore.jks" -storepass changeit
证书生成密钥对
keytool -genkey -alias s1as -keystore keystore.jks -storepass changeit -keysize 2048 -keyalg RSA -validity 3650
生成证书请求,格式为csr
keytool -certreq -alias s1as -file s1as.csr -keystore keystore.jks –storepass changeit
导入,密钥存在证书
keytool -import -storepass 111111 -keypass 111111 -alias tomcat -file fwdw.p7b -keystore fwdwtomcat.jks
导入可信任证书
keytool -import -trustcacerts -storepass 111111 -alias aica -file aica.cer -keystore fwdwtomcat.jks
导入公钥证书,私钥不在jks中
keytool -import -alias s1as -keystore cacerts.jks -storepass changeit -file s1as.cer
查看信息
keytool -list -v -keystore keystore.jks
删除jks中别名证书
keytool -delete -alias s1as -keystore keystore.jks -storepass changeit
更多推荐
所有评论(0)