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的安全访问链接配置

相关推荐
倔强的石头_2 分钟前
数据库行标识符机制探究:OID、ROWID与自增主键的实现与应用
数据库·后端
Cosolar3 分钟前
超越基础 CRUD:LangChain-Chroma 在高并发场景下的架构设计与瓶颈突破
人工智能·后端·面试
yangyanping201084 分钟前
Go语言学习之配置管理库Viper
开发语言·学习·golang
onlooker66668 分钟前
Claude code 源码学习
学习·ai编程·claude code
神奇小汤圆8 分钟前
面试必问:HashMap和ConcurrentHashMap的区别,这次彻底说清楚
后端
LJianK111 分钟前
Java类的实例化对象,和引用
java
sinat_2554878111 分钟前
泛型:超级、扩展、列表·学习笔记
java·windows·学习·算法
何故染尘優13 分钟前
如何快速判断几十亿个数中是否存在某个数?
java
掘金者阿豪13 分钟前
2026年Java开发者生存指南:早晚被淘汰的“码农”,如何借AI逆风翻盘,薪资暴涨50%
人工智能·后端
REDcker14 分钟前
C++ 多线程内存模型与 memory_order 详解
java·c++·spring