环境
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