SpringBoot配置SSL,实现https访问

1. 通过jdk生成证书
找到自己jdk安装目录,在bin目录下执行cmd界面。

 keytool -genkeypair -alias sslkey -keyalg RSA -keystore D:\sslkey.key

其中-alias后的sslkey是证书的别名,RSA是加密算法,-keystore后是输出证书的路径所在
在这里插入图片描述这其中的密钥口令需要记住后面是需要用到的。这个生成的证书是不被官方认证的,当访问的时候浏览器会提示你的连接不是私密连接。可以去购买一个。
在这里插入图片描述

2. 配置SSL
将生成的证书复制到项目的resources下。并在application.yml文件中配置(http中的默认端口是80,而https中的默认端口是443)。这里需要注意如果配置443端口被占用,有可能是装了虚拟机vMware占了443端口。可以先去关闭该端口。

server:
  port: 443
  ssl:
    #    证书路径
    key-store: classpath:tomcat.key
    key-store-type: JKS
    key-alias: tomcat
    #    配置密码,就是在生成证书的时候输入的密码
    key-store-password: dtzhtxm

接下来在启动类配置同时支持http和https访问:

/**
     * http重定向到https
     *
     * @return
     */
    @Bean
    public TomcatServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = 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);
            }
        };
        tomcat.addAdditionalTomcatConnectors(httpConnector());
        return tomcat;
    }

    @Bean
    public Connector httpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        // Connector监听的http的端口号
        connector.setPort(80);
        connector.setSecure(false);
        // 监听到http的端口号后转向到的https的端口号
        connector.setRedirectPort(443);
        return connector;
    }

server.port端口配置需要与connector.setRedirectPort一致。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值