前言
本地的项目接口 需要支持https访问
准备
- java环境 由于我们使用的是java自带的 keytool工具java 生成根证书 环境是必须的
实战
- 生成 https证书
# alias 别名 keystore 存储文件名称 storepass 存储密码 validity 有效期(天数) keytool -genkeypair -alias test -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore test.p12 -validity 3650 -storepass 123456 # 执行后将会生成 一个 test.p12的文件 有效期10年
- 将生成test.p12文件 复制到项目的 resource目录下
- springboot项目中新增配置
server: # https的默认端口 port: 8443 ssl: # 注意 使用配置的值 来自上述生成证书的配置 key-alias: test key-store-type: PKCS12 #key-password: 123456 key-store-password: 123456 key-store: classpath:test.p12
- 启动项目 观察日志 Tomcat started on port 8443 (https)
2024-05-28T16:12:26.684+08:00 INFO 50192 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8443 (https) with context path '/'
- 后续项目中的接口 即可通过 https 进行访问
由于我们使用的是自签名证书 在使用https访问时 会提示 网站不安全
关闭提示后 接口访问
-
使用可以信任的 证书(可选)
如果要避免浏览器的安全警告,可以购买并配置一个由受信任的证书颁发机构签发的证书。具体步骤因证书提供商而异,但大致流程是:- 生成证书签名请求文件
- 将请求文件提交给证书颁发机构
- 下载获得的证书文件
- 在 application.properties 中配置证书文件路径
使用可信证书后,浏览器就可以正常访问应用程序的 HTTPS 服务,不会出现安全警告了。
-
另一种方案 使用花生壳 做内网穿透 反向代理自己的服务端口 即可内部使用https 访问接口
good day !!!