最近接触的项目中用到HTTPS,并且申请了证书以及私钥,这一块接触的少 先整理出来,谨防以后忘记。因为是tomcat中配置的https,需要将证书转成keystore文件,通过openssl 先通过证书以及私钥文件生成p12证书,再通过JAVA的keytool 生成keystore文件
准备工作
申请的证书有证书链,可以右键以文本打开,把证书里的内容按从下至上的顺序复制到一个新建的文件里allinone.cer
将allinone.cer和payment.private.key上传至服务器当中
敲入以下命令,过程中会需要你输入两遍password,需要记住。输入完吼将会生成p12,具体参数命令可以自行百度,不过这个字面意思已经很直白了,就不做叙述
openssl pkcs12 -export -in /root/allinone.cer -inkey /root/payment.private.key -out /root/projectX.p12
通过上面步骤的命令,我们再将projectX.p12文件转为keystore
keytool -importkeystore -v -srckeystore /root/projectX.p12 -srcstoretype pkcs12 -srcstorepass changeit(p12刚输入的密码) -destkeystore /root/payment.keystore -deststoretype jks -deststorepass changeit(keystore密钥库的密码)
- 开始配置tomcat,编辑 $TOMCAT_HOME/conf/server.xml
- 找到https相关的配置,注意区分keystoreFile keystorePass大小写,否则会不生效,并且会提示找不到文件或者密码错误相关提示
- ps:p12的密码好像需要跟keystore密码一致,否则会报错,不知道是不是哪个环节出了问题
<Executor name="tomcatThreadPoolHttps" namePrefix="catalina-exec-https-" maxThreads="6000" minSpareThreads="100" maxIdleTime="120000" /><Connector executor="tomcatThreadPoolHttps" port="8443" redirctPort="6064" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxHttpHeaderSize="8192" acceptCount="1000" enableLookups="false" scheme="https" secure="true"keystoreFile="/root/payment.keystore" keystorePass="changeit" clientAuth="false" sslProtocol="TLSv1.2" />