HTTPS配置

HTTPS配置:

由于 HTTPS 具有良好的安全性,在开发中得到了越来越广泛 的应 像微信公众号 、小 程序
等的开发都要 使用 HTTPS 来完成。对于个人开发者而言 一个 HTTPS 证书的价 格还是有点贵,
国内有 些云服务器厂商提供免费的 TTPS 证书, 个账号可以申请数个 。不 过在 jdk 中提供了
Java 证书管理 工具 keytool \j dk bin 录下 ,通过这个 工具可 以自己 生成一个数字证书,
步骤如下:

打开cmd写命令:

命令:keytool -genkey -alias tomcathttps -keyalg RSA -keysize 2048 -keystore sang.p12 -validity 365

命令解释
-genkey 表示要创 一个新的 密钥。
alias 表示 keystore 的别名。
keya lg 表示使用的加密算法是 RSA 种非对称加密算法
-k eysize 表示密钥的长度
-k eystore 表示生成的密钥存放位直
va lidity 表示密钥的有效时间,单位为夭

找到它,拖到创建项目的根目录下:

注意:要搭建springboot项目在上一个博客中!

 

添加配置:

测试的用不到,可以把测试的类删掉 (不删也没事):

运行这个文件: 

到网页上查看:https://localhost/firstController

 

 接下来是一个http跳转到https的重定向例子:(这是因为 Spring Boot 不支持同时在配置中启动 HTTP HTTPS

代码:

package cn.com.buba.config;

import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class TomcatConfig {
    @Bean
    TomcatServletWebServerFactory tomcatServletWebServerFactory(){
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(){
            @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);//先http的端口号
        connector.setSecure(false);
        connector.setRedirectPort(443);//重定向https的端口号
        return connector;
    }
}

 运行网页上查看:

 

 结束!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值