「证书生成 + spring boot 项目配置」全流程,全程使用 jdk 自带工具,无需额外安装软件,开发测试环境开箱即用。
一、生成自签名 https 证书(开发测试用)
jdk 自带 keytool 密钥管理工具,直接在命令行执行命令即可生成。
1. 执行生成命令
打开 cmd / 终端,进入你想存放证书的目录,执行以下命令:
keytool -genkeypair -alias server -keyalg rsa -keysize 2048 -storetype pkcs12 -keystore server.p12 -validity 3650
参数说明:
-alias server:证书别名,后续 spring boot 配置需要对应-keyalg rsa:使用 rsa 非对称加密算法-keysize 2048:密钥长度 2048 位,符合通用安全标准-storetype pkcs12:密钥库格式,跨平台通用,spring boot 官方推荐-keystore server.p12:生成的证书文件名,生成后保存在当前目录-validity 3650:证书有效期 3650 天(10 年),开发测试足够使用
2. 按提示填写信息
执行命令后会依次提示输入信息,按实际情况填写即可,核心注意第一项「名字与姓氏」:
- 输入密钥库密码:自行设置(例如
123456),后续配置必须用到 - 再次输入密码确认
- 名字与姓氏:本地测试填
localhost;如果部署到服务器,填你的域名或服务器 ip(必须和访问地址一致,否则浏览器会报证书不匹配) - 组织单位名称:随意填写,例如
dev - 组织名称:随意填写,例如
lzgsmis - 所在城市:随意填写
- 所在省份:随意填写
- 国家 / 地区代码:填
cn - 确认信息输入
y回车 - 最后提示「输入密钥的密码」,直接回车即可,让密钥密码和密钥库密码保持一致
执行完成后,当前目录会生成 server.p12 证书文件。
二、配置到 spring boot 项目
1. 放入项目
把生成的 server.p12 文件复制到项目的 src/main/resources 目录下。
2. 修改 application.properties 配置
添加以下 https 配置项:
properties
# https 服务端口 server.port=8443 # 开启 ssl server.ssl.enabled=true # 密钥库文件路径 server.ssl.key-store=classpath:server.p12 # 密钥库密码(生成时设置的密码) server.ssl.key-store-password=123456 # 密钥库格式 server.ssl.key-store-type=pkcs12 # 证书别名,和生成时 -alias 参数保持一致 server.ssl.key-alias=server
三、验证效果
启动项目后,访问 https://localhost:8443 即可通过 https 访问接口。
自签名证书不受浏览器信任,会提示「不安全」self signed certificate,这是正常现象,开发测试环境可以直接点击「高级 → 继续访问」;生产环境必须使用 ca 机构签发的正规 ssl 证书。
四、总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论