keytool生成证书 tomcat8.5/tomcat9 SSL证书安装
一、获取服务器证书、中级证书、根证书
我司会向您交付服务器证书、中间证书及根证书。
二、开始导入证书
1、将根证书 root.cer 导入 keystore 文件
命令格式:
keytool -import -trustcacerts -alias root -file root.cer -keystore [keystore_name]
注:[]中的内容为需要输入的参数
keystore_name:表示证书密钥库的文件名,扩展名一般为 keystore 或 jks
示例:
keytool -import -trustcacerts -alias root -file root.cer -keystore server.jks
2、将中级 CA 证书 intermediate.cer 导入 keystore 文件
命令格式:
keytool -import -trustcacerts -alias intermediate -file intermediate.cer -keystore [keystore_name]
注:[]中的内容为需要输入的参数
keystore_name:表示证书密钥库的文件名,扩展名一般为 keystore 或 jks
示例:
keytool -import -trustcacerts -alias intermediate -file intermediate.cer -keystore server.jks
3、将服务器证书 ServerCertificate.cer 导入 keystore 文件
命令格式:
keytool -import -trustcacerts -alias [alias_name] –file [ServerCertificate] –keystore [keystore_name]
注:[]中的内容为需要输入的参数
[ServerCertificate]:表示服务器证书文件名,下载服务器证书时默认命名为 ServerCertificate.cer
alias_name:表示服务器证书的别名,需要注意的是,这里的别名要与生成密钥库环节私钥的别名相同,否则无法完成公/私钥配对
keystore_name:表示证书密钥库的文件名,扩展名一般为 keystore 或 jks
示例:
keytool –import –trustcacerts -alias api –file ServerCertificate.cer –keystore server.jks
4、查看 keystore 中证书列表
命令格式:
keytool –list –keystore [keystore_name]
注:[]中的内容为需要输入的参数
keystore_name:表示证书密钥库的文件名,扩展名一般为 keystore 或 jks
示例:
keytool -list -keystore server.jks
如果根证书、中级 CA 证书以及服务器证书均导入 keystore 中,用命令查看 keystore 中的证书列表所显示信息应如下图所示,共含有三级证书链。
三、修改配置文件
1、找到 Tomcat 的配置文件
首先确认您的 Tomcat 安装目录所在位置, 打开该安装目录下的 conf 目录,并在 conf 目录下找到 server.xml 文件,这个文件就是 Tomcat 的配置文件,您可以文本方式打开该文件并进行编辑。
2、准备密钥库文件
将之前步骤生成并已导入各级证书的密钥库( keystore)文件准备好,建议复制到 Tomcat 安装目录下的 conf 文件夹内。在确认了密钥库文件所在位置的存储路径后就可以开始修改配置文件了。
3、修改配置文件
打开 server.xml 文件找到如下段落即为配置您的服务器证书所相关的配置。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
type="RSA" />
</SSLHostConfig>
</Connector>
找到该段落后,请参考如下所示内容修改这段配置文件。
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/domain.jks"
certificateKeystorePassword="123456"
type="RSA" />
</SSLHostConfig>
</Connector>
注意:记得将<!--和-->这对符号删除,否则该段落配置将被屏蔽。
4.到server.xml去找到如下内容:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
将redirectPort改成ssl的connector的端口443。
修改完毕保存退出后, 您可以尝试启动 Tomcat 服务, 测试是否可以正常通过 https 方式访问您的域名。 测试后请务必妥善备份您的密钥库 (keystore)。