历史版本18 :Tomcat配置SSL证书实现HTTPS访问 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 创建证书编辑

证书是单点登录认证系统中很重要的一把钥匙,客户端与服务器的交互安全靠的就是证书;本教程由于是演示所以就自己用 JDK 自带的 keytool 工具生成证书;如果以后真正在产品环境中使用肯定要去证书提供商去购买,证书认证一般都是由 VeriSign、globalsign 等国际公认的 CA 机构认证,下面介绍一种利用自带工具生成 SSL 证书及在 Tomcat 服务器中配置的方法。

首先,安装 JRE,单击开始 -> 运行输入cmd,右键以管理员身份运行,单击“确定”启动命令提示符窗口。

切换到 JRE 安装所在的磁盘,例如C:\Program Files\Java\jre1.8.0_201\bin

注:该 JRE 是配置 Tomcat 时所用的 JRE。
输入
cd C:\Program Files\Java\jre1.8.0_111\bin进入 JRE 的 bin 目录下。

执行命令

keytool -genkey -alias tomcat-server -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore

创建证书。如下图:



222

迁移到行业标准格式 PKCS12,执行命令:

keytool -importkeystore -srckeystore server.keystore -destkeystore server.keystore -deststoretype pkcs12

输入密钥库口令:changeit

如下图:

222

注:您的名字与姓氏,这里不能输入 IP 地址,只能输入域名

注:您的名字与姓氏,我输入的是 susie,其实这个域名是不存在的,但是这里为了演示所以虚拟了这个域名,所以需要在 hosts 文件里映射一个虚拟域名,设置方式如下


222

这样在访问 susie 的时候其实是访问的 127.0.0.1 也就是本机

2. 导出证书编辑

执行命令

keytool -export -alias tomcat-server -storepass changeit -file server.cer -keystore server.keystore

将证书导出。

222

3. 将证书导入到 JDK 证书信任库编辑

执行命令

keytool -import -trustcacerts -alias server -file server.cer -keystore cacerts -storepass changeit

系统询问是否信任此证书,回答“y”。

222

注:将新生成 server.keystore,server.cer,cacerts(在%JRE_HOME%\bin目录下)复制到 Tomcat 安装目录下(如%TOMCAT_HOME%

222

除此之外,还需要把 cacerts 文件覆盖到 JRE 的 security 目录下%JRE_HOME%\lib\security


222

4. 应用证书到 Web 服务器编辑

配置 server.xml 文件,以管理员身份运行文字编辑器,打开%TOMCAT_HOME%\conf\server.xml。查找 SSL 配置添加你的证书的地址 keystoreFile(注:地址可以填绝对路径或者在 Tomcat 中的相对路径)以及密码 keystorePass,如下:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"  
           maxThreads="150" SSLEnabled="true" keystoreFile="E:\apache-tomcat-8.5.38\server.keystore" keystorePass="changeit"/>


222

重启 Tomcat 服务,打开https://susie:8443/,如下图:

222


如果看到上面的界面,说明 Tomcat 的 SSL 配置成功。

注:如果配置完后启动不了 Tomcat 服务,则说明第 4 步配置不正确,仔细检查是否按上述步骤配置。