美文网首页
SpringBoot配置https

SpringBoot配置https

作者: ChadJ | 来源:发表于2019-09-26 10:58 被阅读0次

准备证书

  1. 可以去某云服务厂商申请一个免费的。
  2. 可以利用Java自带的JDK管理工具keytool生成一个免费的https证书。
# 进入到%JAVA_HOME%\bin目录,执行命令生成证书
keytool -genkey -alias tomcathttps -keyalg RSA -keysize 2048  -keystore tomcathttps.keystore -validity 365
  • genkey 表示要创建一个新的密钥。
  • alias 表示 keystore 的别名。
  • keyalg 表示使用的加密算法是 RSA ,一种非对称加密算法。
  • keysize 表示密钥的长度。
  • keystore 表示生成的密钥存放位置。
  • validity 表示密钥的有效时间,单位为天。


    生成https证书.png

引入https

将生成的证书拷贝到项目的resources目录下,在application.properties中进行配置

server.ssl.key-store=classpath:tomcathttps.keystore
server.ssl.key-alias=tomcathttps
server.ssl.key-store-password=jichengda
  • key-store 表示密钥文件名
  • key-alias 表示密钥别名
  • key-store-password 密钥库口令
    启动项目,此时如果用http协议访问会提醒
Bad Request
This combination of host and port requires TLS.

请求转发

由于Spring Boot不支持同时启动http和https,通过配置请求转发解决这个问题,当用户发送http协议请求时转发到https上。

@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(8081);
        connector.setSecure(false);
        connector.setRedirectPort(8080);
        return connector;
    }
}

相关文章

  • SpringBoot HTTPS配置

    1、获取SSL证书 正式项目可以购买或者申请免费ssl证书,测试项目可以使用cmd自行生成ssl证书。 输入密码和...

  • springboot配置https

    1、首先需要申请ssl证书,这里选择腾讯云的 2、需要在域名进行sdn解析,这里选择了阿里云的 稍等十分钟就能搞定...

  • SpringBoot配置https

    准备证书 可以去某云服务厂商申请一个免费的。 可以利用Java自带的JDK管理工具keytool生成一个免费的ht...

  • Springboot配置https

    生成自签名证书 生成成功后将证书放到项目根目录 配置项目 配置application.properties 创建h...

  • SpringBoot https配置

    Step1:将ssl证书文件xxx.jks上传到config目录下Step2 : 修改配置文件 applicati...

  • springboot 配置 https

    登录阿里云控制台,选择 ssl 证书 一顿操作完以后,创建证书的位置点下就可以看到证书列表 点击下载证书 spri...

  • springboot监控&springboot配置https

    一、actuator监控 springboot自带actuator监控,开启配置后,访问相关链接就可以返回服务运行...

  • SpringBoot--实战开发--配置(二)

    一、SpringBoot配置 Maven配置 resources 配置配置文件转换工具:https://www.t...

  • SpringBoot Web Https 配置

    不管是游戏服务器开发,还是其它服务开发,越来越多的平台都要求服务端必须支持https的访问。以增加安全性。比如目前...

  • springboot https服务配置

    说明 能够使用到https服务,一般是web服务器或者网关服务器。 步骤1 生成证书文件 此处用的是自签名证书。 ...

网友评论

      本文标题:SpringBoot配置https

      本文链接:https://www.haomeiwen.com/subject/mzsguctx.html