一. 生成自签名证书
打开cmd
输入命令生成证书:
keytool -genkeypair -alias tomcat_https -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore ./https-java.keystore -storepass 123456
属性说明:
-alias 别名
-keypass 指定生成密钥的密码
-keyalg 指定密钥使用的加密算法(如 RSA)
-keysize 密钥大小
-validity 过期时间,单位天
-keystore 指定存储密钥的密钥库的生成路径、名称
-storepass 指定访问密钥库的密码
二. 项目配置
将证书放进项目resources文件夹下
配置文件application.properties添加证书相关配置
#开启https,配置跟证书一一对应
server.ssl.enabled=true
#指定证书
server.ssl.key-store=classpath:https-java.keystore
server.ssl.key-store-type=JKS
#别名
server.ssl.key-alias=tomcat_https
#密码
server.ssl.key-password=123456
server.ssl.key-store-password=123456
现在我们就可以通过https访问服务器了
三. 导出.cer证书给客户端
客户端信任证书一般来说都需要.cer的证书格式:
// 二进制形式
keytool -exportcert -v -alias tomcat_https -keystore .\https-java.keystore -storepass 123456 -file server.cer
// 字符串
keytool -exportcert -keystore https-java.keystore -rfc -file server1.cer -alias tomcat -storepass 123456
属性说明:
-alias <alias> 要处理的条目的别名
-keypass <arg> 密钥口令
-keystore <keystore> 密钥库名称
-storepass <arg> 密钥库口令
-storetype <storetype> 密钥库类型
-file 文件
-v 详细输出
操作:
结果:
样例:
配置添加:
server:
port: 8080
servlet:
session:
cookie:
secure: true
ssl:
keyStore: classpath:https-java.keystore
keyStorePassword: password
keyStoreType: JKS
keySlias: test
keySassword: password
certFingerprint: F342E93F93D3B077ACEC06E2EC6F74B39B432C54
证书文件: