SpringBoot使用自定义https

https

HTTPS是以安全为目标的http通道,在http的基础上添加了ssl,传输加密和身份认证保证了传输过程的安全性,
https安全基础就是ssl,因此加密的详细内容就需要ssl
系统提供了身份验证,官方使用在万维网上的安全通讯。

在这里插入图片描述

1、生成证书

keytool -genkeypair -alias "java2021" -keyalg "RSA" -keysize 2048 -keystore "G:\zs\tomcat.keystore"
//上述解释
-alias 别名
-keypass 指定生成密钥的密码
-keyalg 指定密钥使用的加密算法(如 RSA)
-keysize 密钥大小
-validity 过期时间,单位天
-keystore 指定存储密钥的密钥库的生成路径、名称
-storepass 指定访问密钥库的密码

通过此命令运行,则CMD命令窗口会提示输入密钥库口令:654321

生成完成后

2.1.1配置tomcat方式

在tomcat的conf中的server.xml中配置

<Connector SSLEnabled="true" keystoreFile="G:\zs\tomcat.keystore" keystorePass="654321" maxThreads="150" port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol">
    </Connector>

保存运行

2.1.2访问地址

https://localhost:8443 即可


2.2.1Springboot的方式
2.2.2生成的tomcat.keystore放在resources里面

application.properties 或 application.yml 配置文件中配置相关https内容

server.port=8443
# 开启https
server.ssl.enabled=true
#配置跟证书对应
server.ssl.key-store=classpath:tomcat.keystore
# server.ssl.key-store-type=JKS
server.ssl.key-store-type=JKS
# 密码
server.ssl.key-store-password=654321
# springboot2.x不需要配置
server.ssl.key-password=654321
# 别名
server.ssl.key-alias=java2021
2.2.3配置协议跳转https

启动类main方法下面加上

  // SpringBoot2.x配置HTTPS,并实现HTTP访问自动转向HTTPS
    @Bean
    public ServletWebServerFactory servletContainer() {
        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(httpConnector());
        return tomcat;
    }

    @Bean
    public Connector httpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(8080); // 监听Http的端口   端口号让占用就修改8080这个端口
        connector.setSecure(false);
        connector.setRedirectPort(8443); // 监听Http端口后转向Https端口
        return connector;
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张航柯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值