springboot配置ssl与http转https

如果项目打war包,则可以使用tomcat的配置,在tomcat的配置文件中修改相关信息即可

<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" 
               maxPostSize="10485760" />

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate   certificateKeystoreFile="加密文件路径.pfx"
             
             certificateKeystorePassword="JmjRWhlc"

             certificateKeystoreType="PKCS12" />
        </SSLHostConfig>
</Connector>

 

如果项目打jar包,那么需要我们在项目的配置文件中配置相关信息

其中/home/mojing/mojing.kuesee.com.pfx是加密文件的绝对路径,记得开放权限

chmod -R 777 /home/mojing/mojing.kuesee.com.pfx

这时springboot的ssl配置已经完成,然而,这时我们只能通过https访问,如果用户通过http访问则访问不了,那么如果我们需要用户能够通过http访问,该如何配置呢?

其实很简单,我们需要在项目的启动类中添加如下内容,当请求过来时,直接重定向的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转https已经完成。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot中,可以通过以下步骤来配置SSL同时支持HTTPHTTPS: 1. 生成SSL证书和密钥 可以使用Java Keytool工具生成SSL证书和密钥。以下是一个示例命令: ``` keytool -genkey -alias mydomain -keyalg RSA -keystore keystore.jks -validity 3650 ``` 其中,mydomain是证书别名,keystore.jks是密钥库文件名,-validity表示证书有效期为3650天。 2. 在application.properties文件中配置SSL 在application.properties文件中添加以下配置: ``` server.port=8443 server.ssl.key-store=classpath:keystore.jks server.ssl.key-store-password=changeit server.ssl.key-password=changeit server.ssl.key-alias=mydomain ``` 其中,server.port指定HTTPS端口号,server.ssl.key-store指定密钥库文件路径,server.ssl.key-store-password指定密钥库密码,server.ssl.key-password指定证书密码,server.ssl.key-alias指定证书别名。 3. 配置HTTP重定向到HTTPS配置文件中添加以下配置: ``` server.port=8080 server.ssl.enabled=true server.ssl.redirectHttp=true ``` 其中,server.port指定HTTP端口号,server.ssl.enabled=true启用SSL,server.ssl.redirectHttp=true配置HTTP重定向到HTTPS。 4. 运行应用程序 现在可以运行应用程序,并通过https://localhost:8443访问应用程序。如果尝试访问http://localhost:8080,应该会自动重定向到https://localhost:8443。 总结: 通过以上步骤,可以配置Spring Boot应用程序来同时支持HTTPHTTPS。可以使用SSL证书和密钥来提供安全性,同时使用HTTP重定向到HTTPS来提高用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值