Keytool生成证书并在Tomcat配置SSL
基础软件环境说明
JDK: jdk-8u121-windows-x64
Tomcat:apache-tomcat-8.5.15
生成服务器秘钥文件
以命令行方式切换到目录%TOMCAT_HOME%/bin,在command命令行输入以下命令,创建一个keystore文件:
keytool -genkey -alias webgis -keyalg RSA -keypass gisplatform -storepass gisplatform -keysize 2048 -keystore webgis.keystore -validity 7300
注:
-keypass和–storepass的秘钥一致,省去输入密码的过程。
-validity 指证书的有效期(天),缺省有效期很短,只有90天,这里配置了20年。
您的名字与姓氏是服务器所使用的域名(譬如lzgis.lzs.gx),其它的根据实际填写,也可以回车跳过,最后确认,此时会在%TOMCAT_HOME%下生成webgis.keystore 文件,如下图:
生成服务端证书
根据上面导出的webgis.kyestore文件,就可以生成后缀为cer的文件,这是服务器端的证书文件,执行命令如下:
keytool -export -alias webgis -storepass gisplatform -file webgis.cer -keystore webgis.keystore
注意:-alias和-storepass必须为生成webgis.keystore**文件时所指定的别名和密码,否则证书导出失败。执行上述命令之后,回发现多了一个webgis.keystore文件,如下图:
导入证书到cacerts**库文件中
keytool -import -trustcacerts -alias webgis -storepass gisplatform -file webgis.cer -keystore cacerts
如果有提示,输入Y即可。
命令执行成功后bin目录下多出cacerts文件,如下图:
这个文件就是证书的秘钥库文件。
配置TOMCAT 端口和HTTPS
在制作完成**文件、证书文件、**库文件后即可进行服务端Tomcat的配置,打开$Tomcat_HOME/conf/server.xml:
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https"
secure="true" clientAuth="false" sslProtocol="TLS"
keystoreFile="D:\apache-tomcat-8.5.15\bin\webgis.keystore"
keystorePass="gisplatform"
truststoreFile="D:\apache-tomcat-8.5.15\bin\cacerts"/>
说明:
port一般为8443或443,最常用的是443端口(https默认端口)。这样https方式访问的时候可以不加端口号(如:https://lzgis.lzs.gx/arcgis)。
keystoreFile为tomcat目录下的**文件。
keystorePass为私钥密码。
truststoreFile指向信任的秘钥库文件,如果此处不指定则默认为$JAVA_HOME/jre/lib/security/cacerts文件,这里指定为上一步生成的秘钥库文件,这是因为我们把秘钥放在该文件库中。
另外把Tomcat的http默认端口改成80,转发端口改成443。
删除秘钥库中的秘钥
列出信任证书库中所有已有证书:
keytool -list -v -keystore cacerts
删除库中某个证书:
keytool -delete -trustcacerts -alias webgis -storepass gisplatform –keystore cacerts