SpringBoot项目Http转Https配置

SpringBoot配置HTTPS,并实现HTTP访问自动转HTTPS访问

1、 使用JDK自带的keytools创建证书

打开cmd,输入如下命令:

keytool -genkey -alias tomcat -keyalg RSA -keystore ./server.keystore
复制代码

一切按照提示进行操作:

操作完成后,会在用户打开cmd的窗口生成server.keystore文件

2、 拷贝证书文件到工程根目录

将生成的server.keystore拷贝到需要支持HTTPS访问服务的根目录,然后进行配置。

在application.properties,加入下列配置:

server.port=443

server.ssl.key-store=server.keystore

server.ssl.key-alias=tomcat

server.ssl.enabled=true

server.ssl.key-store-password=123456

server.ssl.key-store-type=JKS
复制代码

注:这里将服务器端口号设置成443端口,即https的默认访问端口,那么在进行https访问的时候可以不带端口号直接访问,如果端口被占用使用,则需要解决端口占用问题了。

3、 Http访问自动转Https

在Spring Boot启动类中注入下面两个Bean,提供Https服务。

 @Bean

    public Connector connector(){

        Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");

        connector.setScheme("http");

        connector.setPort(80);

        connector.setSecure(false);

        connector.setRedirectPort(443);

        return connector;

        }

    @Bean

    public TomcatServletWebServerFactory tomcatServletWebServerFactory(Connector connector){

        TomcatServletWebServerFactory tomcat=new TomcatServletWebServerFactory(){

            @Override

            protected void postProcessContext(Context context) {

                SecurityConstraint securityConstraint=new SecurityConstraint();

                securityConstraint.setUserConstraint("CONFIDENTIAL");

                SecurityCollection collection=new SecurityCollection();

                collection.addPattern("/*");

                securityConstraint.addCollection(collection);

                context.addConstraint(securityConstraint);

            }

        };

        tomcat.addAdditionalTomcatConnectors(connector);

        return tomcat;

}
复制代码

在这里设置http的监听端口为80端口,http默认端口,这样在访问的时候也可以不用带上端口号了,直接访问http://localhost,自动转向https://localhost

转载于:https://juejin.im/post/5bacfaecf265da0ae8012022

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值