spring boot 项目配置https服务

怀旧网个人博客网站地址:怀旧网,博客详情:spring boot 项目配置https服务

第一步:申请ssl证书

在自己的域名注册网站可以申请,建议使用腾讯的ssl证书申请服务(免费)

申请时需要绑定需要添加https的域名:(一定要是需要填加的域名才有效)

第二步:下载证书并导入项目

下载自己的ssl证书,我这边下载的是.jks类型证书

然后将内容解压出来,并且将 .jks文件放在你的项目resources目录下,建议创建一个ssl文件件,然后将文件放入进去

第三步:配置yml

配置详情如下

复制代码
# 服务端口号
server:
  port: 443 # https默认端口为443这边就不要写80了
  reactive:
      session:
          timeout: PT360H
  # https 配置
  ssl:  # 这下面的配置按照要求来就可以
    enabled: true 
    # 保存SSL证书的秘钥库的路径
    key-store: classpath:ssl/xxxxx.jks # 这边就是刚刚保存的.jks文件路径
    key-store-password: XXXXX  # 这边就填写下载下来的包里面的password文件里里面的内容
    # 证书类型
    key-store-type: JKS  # 下载的什么类型的证书就写对应的配置就行

第四步:配置端口自动跳转

这个步骤可以选做--目的是当用户通过80访问当前端口的时候可以直接自动跳转到443端口(目的是访问http自动跳转到https)

下面的配置类代码--直接照着写就行

复制代码
// 文件名:  HttpsConfig

import org.apache.catalina.connector.Connector;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * https配置,将http请求全部转发到https
 * @author P_P
 */
@Configuration
public class HttpsConfig {
    //SpringBoot-v2.0+配置方式
    @Bean
    public ServletWebServerFactory servletContainer() {
        //创建Tomcat服务器工厂实例
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
        //添加此tomcat实例其它连接参数
        tomcat.addAdditionalTomcatConnectors(createHTTPConnector());
        return tomcat;
    }

    /**
     * 配置tomcat自定义连接参数
     * @return
     */
    private Connector createHTTPConnector() {
        //Connector port有两种运行模式(NIO和APR),选择NIO模式:protocol="org.apache.coyote.http11.Http11NioProtocol"
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        //启用http(80)端口
        connector.setScheme("http");
        //设置安全连接标志,该标志将被分配给通过该连接接收的请求
        //secure新的安全连接标志
        //如果connector.setSecure(true),则http使用http, https使用https; 分离状态,因此设置false
        connector.setSecure(false);
        //http默认端口
        connector.setPort(80);
        //重定向证书端口443,便于http自动跳转https
        connector.setRedirectPort(443);
        return connector;
    }
}

完成以上步骤就可以完成https的安全访问链接配置

相关推荐
弈栈录7 小时前
MySQL 事务、索引与锁:后端开发必须掌握的数据库基础
数据库·后端
江江爱编程7 小时前
java零基础保姆级教学01
java·开发语言
明月_清风7 小时前
AI Agent 最大的问题,可能不是智商,而是“权限”
人工智能·后端
9624567 小时前
餐饮 SaaS 优惠券系统架构演进(三):优惠计算引擎——商品级计价、冲突策略与优惠分摊
java·数据库·spring boot
vx_Biye_Design7 小时前
expressDeepSeek社团咨询助手的学生社团管理系统60746-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·python·课程设计·express
长安米粒贵7 小时前
缓存明明加了,为什么数据还是不一致?聊聊 4 个容易忽略的边界
后端
yunwei377 小时前
eBPF 开发实践:使用 eBPF 隐藏进程或文件信息
linux·后端·性能优化
高频因子挖掘机7 小时前
行情监控脚本重启后,怎样快速恢复而不重复拉取数据?
后端·github·api
传奇开心果编程7 小时前
【ArkUI进阶练中学】第13课:元服务与卡片开发
学习·ui·华为·harmonyos
aleafboat7 小时前
只管去写(day2) 用claude分析老项目技术栈
后端