环境
Tomcat:apache-tomcat-9.0.30
JDK:jdk1.8.0_201
第一步:生成密钥
使用JDK自带工具keytool,keytool自带的命令如下:
- -certreq 生成证书请求
- -changealias 更改条目的别名
- -delete 删除条目
- -exportcert 导出证书
- -genkeypair 生成密钥对
- -genseckey 生成密钥
- -gencert 根据证书请求生成证书
- -importcert 导入证书或证书链
- -importpass 导入口令
- -importkeystore 从其他密钥库导入一个或所有条目
- -keypasswd 更改条目的密钥口令
- -list 列出密钥库中的条目
- -printcert 打印证书内容
- -printcertreq 打印证书请求的内容
- -printcrl 打印 CRL 文件的内容
- -storepasswd 更改密钥库的存储口令
生成密钥对genkeypair的具体参数选项如下:
- -alias <alias> 要处理的条目的别名
- -keyalg <keyalg> 密钥算法名称
- -keysize <keysize> 密钥位大小
- -sigalg <sigalg> 签名算法名称
- -destalias <destalias> 目标别名
- -dname <dname> 唯一判别名
- -startdate <startdate> 证书有效期开始日期/时间
- -ext <value> X.509 扩展
- -validity <valDays> 有效天数
- -keypass <arg> 密钥口令
- -keystore <keystore> 密钥库名称
- -storepass <arg> 密钥库口令
- -storetype <storetype> 密钥库类型
- -providername <providername> 提供方名称
- -providerclass <providerclass> 提供方类名
- -providerarg <arg> 提供方参数
- -providerpath <pathlist> 提供方类路径
- -v 详细输出
- -protected 通过受保护的机制的口令
使用命令:
keytool -genkeypair -alias "liangxin_test" -keyalg "RSA" -keystore "D:\liangxin_test.keystore"
说明:默认的密钥有效时间为90天
第二部:Tomcat配置密钥
打开Tomcat中conf文件夹下的server.xml文件,添加如下配置信息:
<Connector port="443"
protocol="HTTP/1.1"
scheme="https"
sslProtocol="TLS"
secure="true"
clientAuth="false"
maxThreads="150"
SSLEnabled="true"
keystoreFile="d:\liangxin_test.keystore"
keystorePass="123456" >
</Connector>
重新启动Tomcat进行验证:
验证HTTPS协议:
验证HTTP协议(端口为8080,前面默认的http://不显示):