SpringBoot配置HTTPS及开发调试
【摘要】 在实际开发过程中,如果后端需要启用https访问,通常项目启动后配置nginx代理再配置https,前端调用时高版本的chrome还会因为证书未信任导致调用失败,通过摸索整理一套开发调试下的https方案,特此分享
前言
在实际开发过程中,如果后端需要启用https访问,通常项目启动后配置nginx代理再配置https,前端调用时高版本的chrome还会因为证书未信任导致调用失败,通过摸索整理一套开发调试下的https方案,特此分享
后端配置
生成HTTPS密钥
keytool -genkeypair -alias tomcat -keyalg RSA -keysize 2048 -ext "SAN=IP:192.168.1.14" -keypass abcd@1234 -keystore frame.jks -storepass abcd@1234 -validity 360000
SAN需要设置你自己电脑的固定ip
配置SSL访问
这里以2.0.0.RELEASE版本为例
server:
ssl:
key-store: classpath:systemfile/frame.jks
key-store-password: abcd@1234
key-store-type: JKS
key-alias: tomcat
如果需要打包部署测试环境,需要添加以下配置将jks密钥排除在外
<resources>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*.jks</exclude>
</excludes>
</resource>
<resource>
<filtering>false</filtering>
<directory>src/main/resources</directory>
<includes>
<include>**/*.jks</include>
</includes>
</resource>
</resources>
创建TomcatConfig配置信任
@Configuration
public class TomcatConfig {
@Bean
public TomcatServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcatServletContainerFactory = new TomcatServletWebServerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint constraint = new SecurityConstraint();
constraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
constraint.addCollection(collection);
context.addConstraint(constraint);
}
};
tomcatServletContainerFactory.addConnectorCustomizers(new FrameTomcatConnectorCustomizer());
return tomcatServletContainerFactory;
}
}
浏览器设置
使用360浏览器访问系统后台管理地址,点击地址栏的查看证书并导出
打开360浏览期设置,搜索证书,配置SSL证书,在受信任的根证书派发机构和受信任的发布者两个tab下导入刚才导出的证书
关闭浏览器重新打开,访问系统地址,地址栏锁变绿则代表配置成功
开发调试
postman在调试https接口时在Setting目录关闭SSL验证
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)