Spring Boot项目配置https访问解决方案通过jks证书配置

Spring Boot项目配置https使用方案(使用jks进行配置)

1.腾讯云或者阿里云申请免费ssl证书

2.下载已经通过审核的证书文件夹,解压文件如下,根据项目选择使用

在这里插入图片描述

3.由于springboot内置Tomcat所以直接编写配置文件(yml.或者properties文件)我的项目是yml故以此为例:

server:
  # 服务器的端口即需要访问的端口
  port: 10087
  tomcat:
    # tomcat的URI编码
    uri-encoding: UTF-8
    # tomcat最大线程数,默认为200
    max-threads: 800
    # Tomcat启动初始化的线程数,默认值25
    min-spare-threads: 30
    #开启https认证配置
  ssl:
    key-store: classpath:a.b.cn.jks
    key-password: 123456
    key-store-type: JKS
    client-auth: none
    #client-auth: none 是否开启服务端认证为关闭
    #key-store: classpath:a.b.cn.jks 这里需要将第二步Tomcat下的jks文件放到和yml同级目录下即resources下,classpath填写文件名
    #key-password:密码在keystorePass.txt中
    #key-store-type: JKS 当前我的申请的文件是JKS,还有其他类型请另谋攻略
    

4.如上步骤全部完成就完成全部步骤,即可重启项目通过: https://ip:10087访问项目,但是如果之前发布过项目会导致http访问失效,这时候就需要添加请求转发使所有http请求转发到https,有两种方案如果项目使用了nginx的直接nginx断言http请求代理到https,如下演示第二种通过后端代码转发

@Configuration
public class TomcatConfig {
    @Bean
    TomcatEmbeddedServletContainerFactory tomcatEmbeddedServletContainerFactory() {
        TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory(){
            @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);
            }
        };
        factory.addAdditionalTomcatConnectors(createTomcatConnector());
        return factory;
    }

    private Connector createTomcatConnector() {
        Connector connector = new
                Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
         //需要监听的端口号
        connector.setPort(8080);
        connector.setSecure(false);
        //重定向到443端口,443端口为https的默认端口和http的80端口同效
        connector.setRedirectPort(443);
        return connector;
    }
}

总结:

如上为全部springboot使用jks 配置https使用的方法,如有其他类型证书文件请另谋攻略,如上为自己项目配置流程

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值