配置Springboot支持https和http协议

记录一下关于springboot 同时支持https和http协议的问题
在网上看了关于微信小程序的教程,要发布小程序的后端必须要支持https服务的,所以在后端springboot项目中添加了支持https服务的相关配置
在网上查了一下资料,又在我本地实践了一把,it works

1.用jdk自带的keytool生成一个.keystore的文件
在这里插入图片描述
设置秘钥口令 key-store-password
我在此设置的是: gexiaolong
-genkey 生成key
-validity 3600 有效期限3600天
-alias 别名 这个目前我也还没有搞明白是用在哪里的
-keyalg RSA 指定生成key的算法RSA
-keystore d:\gexiaolong.keystore 指定生成的keystore文件和路径 在D盘下

然后将生成的gexiaolong.keystore 放在项目的resources目录下
在这里插入图片描述

2.在application.yml中配置相关信息

配置key-store
key-store-password

在这里插入图片描述
至此配置完成,项目支持https协议

访问项目接口正确返回数据
在这里插入图片描述
切换成http协议访问则不支持 报错
在这里插入图片描述
3.配置TomcatServletWebServerFactory 支持http协议访问

在项目中添加TomcatServerCustomer 组件,然后启动项目,再次访问就可以使用http协议访问了

@Component
public class TomcatServerCustomer implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {

    @Override
    public void customize(TomcatServletWebServerFactory factory) {
//      final Connector connector = new Connector("HTTP/1.1");
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(8080);
        factory.addAdditionalTomcatConnectors(connector);
    }
}

再次访问 则http 协议访问正常返回数据
在这里插入图片描述

https 协议也能正常访问的

OK,配置完成两种协议都支持了

### Spring Boot Vue 3 中 HTTPS配置 #### 后端 (Spring Boot) 为了使 Spring Boot 支持 HTTPS 协议,在本地环境中可以通过 `keytool` 工具来生成自签名证书。具体命令如下: ```bash keytool -genkey -alias tomcat -keyalg RSA -keystore server.keystore ``` 此命令会创建名为 `server.keystore` 文件用于存储私钥公钥对以及相应的认证信息[^4]。 接着需修改项目的 application.properties 或者 application.yml 来指定 keystore 路径其他必要的 SSL 参数: 对于 properties 文件来说: ```properties server.port=8443 server.ssl.key-store=classpath:server.keystore server.ssl.key-password=password_used_when_generating_keystore server.ssl.keyStoreType=JKS server.ssl.keyAlias=tomcat ``` 而对于 yml 文件则是这样设置: ```yaml server: port: 8443 ssl: key-store: classpath:server.keystore key-password: password_used_when_generating_keystore keyStoreType: JKS keyAlias: tomcat ``` 以上配置使得应用程序能够监听 HTTPS 请求,默认情况下是在端口 8443 上运行。 #### 前端 (Vue CLI) 当涉及到前端部分时,如果开发者希望在开发期间启用 HTTPS,则可以在 vue.config.js 添加相应选项: ```javascript module.exports = { devServer: { https: true, host: 'localhost', port: 8080, // 可选参数 proxy: { '/api': { target: 'https://localhost:8443', // 对应到 springboot 提供的服务地址 changeOrigin: true, secure: false, ws: true } } } } ``` 这里设置了 `devServer.https=true` 表明我们要开启 HTTPS 模式,并指定了代理规则以便于跨域请求后端 API 接口。 另外需要注意的是浏览器可能会因为安全原因阻止加载不安全的内容(即 HTTP),所以在生产环境下建议始终采用全站 HTTPS 方案以保障数据传输的安全性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值