Keytool生成证书并在Tomcat配置SSL

  1. 基础软件环境说明

JDK jdk-8u121-windows-x64

Tomcatapache-tomcat-8.5.15

  1. 生成服务器秘钥文件

以命令行方式切换到目录%TOMCAT_HOME%/bin,在command命令行输入以下命令,创建一个keystore文件:

keytool -genkey -alias webgis -keyalg RSA -keypass gisplatform -storepass gisplatform -keysize 2048 -keystore webgis.keystore -validity 7300

Keytool生成证书并在Tomcat配置SSL

注:

-keypass–storepass的秘钥一致,省去输入密码的过程。

-validity 指证书的有效期(),缺省有效期很短,只有90天,这里配置了20年。

您的名字与姓氏是服务器所使用的域名(譬如lzgis.lzs.gx),其它的根据实际填写,也可以回车跳过,最后确认,此时会在%TOMCAT_HOME%下生成webgis.keystore 文件,如下图:

Keytool生成证书并在Tomcat配置SSL

  1. 生成服务端证书

根据上面导出的webgis.kyestore文件,就可以生成后缀为cer的文件,这是服务器端的证书文件,执行命令如下:

keytool -export -alias webgis -storepass gisplatform -file webgis.cer -keystore webgis.keystore

Keytool生成证书并在Tomcat配置SSL

注意:-alias-storepass必须为生成webgis.keystore**文件时所指定的别名和密码,否则证书导出失败。执行上述命令之后,回发现多了一个webgis.keystore文件,如下图:

Keytool生成证书并在Tomcat配置SSL

  1. 导入证书到cacerts**库文件中

keytool -import -trustcacerts -alias webgis -storepass gisplatform -file webgis.cer -keystore cacerts

如果有提示,输入Y即可。

Keytool生成证书并在Tomcat配置SSL

命令执行成功后bin目录下多出cacerts文件,如下图:

Keytool生成证书并在Tomcat配置SSL

这个文件就是证书的秘钥库文件。

  1. 配置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一般为8443443,最常用的是443端口https默认端口)。这样https方式访问的时候可以不加端口号(如:https://lzgis.lzs.gx/arcgis)。

keystoreFiletomcat目录下的**文件。

keystorePass为私钥密码。

truststoreFile指向信任的秘钥库文件,如果此处不指定则默认为$JAVA_HOME/jre/lib/security/cacerts文件,这里指定为上一步生成的秘钥库文件,这是因为我们把秘钥放在该文件库中。

另外把Tomcathttp默认端口改成80,转发端口改成443

Keytool生成证书并在Tomcat配置SSL

  1. 删除秘钥库中的秘钥

列出信任证书库中所有已有证书

keytool -list -v -keystore cacerts

删除库中某个证书:

keytool -delete -trustcacerts -alias webgis -storepass gisplatform –keystore cacerts