美文网首页
SpringBoot HTTPS配置

SpringBoot HTTPS配置

作者: wyon | 来源:发表于2018-03-13 22:21 被阅读0次

1、获取SSL证书

正式项目可以购买或者申请免费ssl证书,测试项目可以使用cmd自行生成ssl证书。

keytool -genkey -alias tomcat  -storetype PKCS12 -keyalg RSA -keysize 2048  -keystore keystore.p12 -validity 3650

输入密码和证书信息后,会在cmd工作目录自动生成证书文件。

2、修改配置文件

将证书文件放到resources文件夹下,然后修改配置文件。

#服务端口
server.port=8443
#http端口
server.port.http=8080
#ssl证书路径,classpath:指项目resources目录,若放到项目根目录,则去掉classpath:
server.ssl.key-store=classpath:keystore.p12
#ssl证书信息
server.ssl.key-store-password=123456
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=tomcat

3、实现HTTP自动跳转到HTTPS

添加下面的Tomcat容器配置类,使用的SpringBoot版本为2.0.0.RELEASE(在之前版本中使用TomcatEmbeddedServletContainerFactory)。

@Configuration
public class HttpsConfig {
    /**
     * http端口
     */
    @Value("${server.port.http:8080}")
    private int httpPort;
    /**
     * 服务端口
     */
    @Value("${server.port:8443}")
    private int serverPort;

    @Bean
    public TomcatServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                SecurityCollection collection = new SecurityCollection();
                // 添加下面一行代码,可以实现http和https同时访问,但是http无法重定向到https
                // 如果注释该行代码,http可以重定向到https,但是所有请求都会变成get请求
                // collection.addMethod("post");
                collection.addPattern("/*");
                SecurityConstraint constraint = new SecurityConstraint();
                constraint.setUserConstraint("CONFIDENTIAL");
                constraint.addCollection(collection);
                context.addConstraint(constraint);
            }
        };
        factory.addAdditionalTomcatConnectors(httpConnector());
        return factory;
    }

    @Bean
    public Connector httpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(httpPort);
        connector.setSecure(false);
        connector.setRedirectPort(serverPort);
        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/cfotqftx.html