环境

Java8 + Tomcat7 + Windows10

生成证书

Win + R 打开 cmd接下来使用 JDK 自带的 keytool 工具生成数字证书首先查看命令参数

1
C:\Users\fanlychie\.keystore>keytool -genkey -help

创建一个存放密钥库的目录并进入此目录

1
2
C:\Users\fanlychie>md .keystore
C:\Users\fanlychie>cd .keystore

生成一个密钥库文件

1
C:\Users\fanlychie\.keystore>keytool -genkey -alias selfissue -keyalg RSA -keysize 2048 -keypass 123654 -validity 3660 -keystore selfissue.jks -storepass 123654

-alias 设定一个别名-validity 设定证书的有效天数-keypass 密钥口令设置和 -storepass 密钥库口令相同-keystore 设定密钥库名称

第一处询问 您的名字与姓氏是什么?该处填写的是单点登录服务器的域名其余项可自由填写

执行完成后生成的密钥库文件在 C:\Users\fanlychie\.keystore\selfissue.jks

查看密钥库

1
C:\Users\fanlychie\.keystore>keytool -list -keystore selfissue.jks

输入口令 123654

返回上层目录创建一个存放证书的目录并进入该目录

1
2
3
C:\Users\fanlychie\.keystore>cd ..
C:\Users\fanlychie>md .certificate
C:\Users\fanlychie>cd .certificate

导出证书

1
C:\Users\fanlychie\.certificate>keytool -export -alias selfissue -keystore ../.keystore/selfissue.jks -file selfissue.crt -storepass 123654

执行完成后生成的证书文件在 C:\Users\fanlychie\.certificate\selfissue.crt

客户端导入证书

1
C:\Users\fanlychie\.certificate>keytool -import -keystore %JAVA_HOME%\jre\lib\security\cacerts -file selfissue.crt -alias selfissue

需要注意的是密钥库口令不是上面生成证书设置的密码 123654,而必须是 changeit

Tomcat7 Https 配置

打开 conf/server.xml找到

1
<Connector port="8080" redirectPort="8443" connectionTimeout="20000" protocol="HTTP/1.1"/>

改成

1
2
3
4
5
6
7
8
9
10
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="200"
SSLEnabled="true"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="C:\Users\fanlychie\.keystore\selfissue.jks"
keystorePass="123654"
keystoreType="JKS" />

配置参数可参考

打开 C:\Windows\System32\drivers\etc\hosts(以管理员身份取得该文件所有权限否则无法编辑该文件)向该文件添加如下一行并保存退出

1
127.0.0.1 www.fanlychie.com

启动 Tomcat访问 https://www.fanlychie.com:8443