SpringBoot配置https

简介: SpringBoot配置https
#https 
//使用keytool生成本地证书 ,keytool是jdk自带的生成key工具,别名为tomcat
keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650
#-----上面那段话直接执行就行,Windows进去jdk目录底下。
#application.properties
#配置https
server.port=8443
#.keystore放在了src/main/resources里面,默认是隐藏的,可以从盘符下看
server.ssl.key-store=classpath:keystore.p12
#用jdk生成key时的口令
server.ssl.key-store-password=123456
server.ssl.keyStoreType:PKCS12
#key的别名
server.ssl.keyAlias:tomcat
#配置从定向
#以下就是配置重定向的代码
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.beans.factory.annotation.Value;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
 * @ClassName: HttpsConfig.java
 * @Description: TODO(用一句话描述做什么)
 * 
 * @author liu pei
 * @version V 1.0
 * @Date 2019年3月4日 上午11:19:03
 */
@Configuration
public class HttpsConfig {
  // 在某配置类中添加如下内容
  // 监听的http请求的端口,需要在application配置中添加http.port=端口号 如80
  @Value("${http.port}")
  Integer httpPort;
  // 正常启用的https端口 如443
  @Value("${server.port}")
  Integer httpsPort;
  // springboot2 写法
  @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(httpPort);
    connector.setSecure(false);
    // 监听到http的端口号后转向到的https的端口号
    connector.setRedirectPort(httpsPort);
    return connector;
  }
}

 

相关文章
|
24天前
|
安全 应用服务中间件 Shell
nginx配置https的ssl证书和域名
nginx配置https的ssl证书和域名
|
2月前
|
数据安全/隐私保护 Docker 容器
配置Harbor支持https功能实战篇
关于如何配置Harbor支持HTTPS功能的详细教程。
75 12
配置Harbor支持https功能实战篇
|
2月前
HAProxy的高级配置选项-配置haproxy支持https协议及服务器动态上下线
文章介绍了如何配置HAProxy以支持HTTPS协议和实现服务器的动态上下线。
119 8
HAProxy的高级配置选项-配置haproxy支持https协议及服务器动态上下线
|
2月前
|
分布式计算 Hadoop Devops
Hadoop集群配置https实战案例
本文提供了一个实战案例,详细介绍了如何在Hadoop集群中配置HTTPS,包括生成私钥和证书文件、配置keystore和truststore、修改hdfs-site.xml和ssl-client.xml文件,以及重启Hadoop集群的步骤,并提供了一些常见问题的故障排除方法。
64 3
Hadoop集群配置https实战案例
|
2月前
|
Linux Docker Windows
Docker配置https证书案例
本文介绍了如何为Docker的Harbor服务配置HTTPS证书,包括安装Docker和Harbor、修改配置文件以使用证书、生成自签名证书、配置证书以及验证配置的步骤。
120 2
Docker配置https证书案例
|
2月前
|
应用服务中间件 网络安全 Apache
HTTPS配置
HTTPS配置
109 11
|
2月前
|
监控 安全 应用服务中间件
如何配置HTTPS协议?
如何配置HTTPS协议?
105 4
|
安全 数据建模 应用服务中间件
HTTPS配置全记录
HTTPS配置全记录 环境 常见的部署环境和条件有以下几种情况组合: Apache+自签名证书 Apache+免费或商业证书 Nginx+自签名证书 Nginx+免费或商业证书 免费证书和商业证书本质上是一样的,都是可以被系统承认的证书,只是申请方式不同而已。
2708 0
|
2月前
|
监控 安全 搜索推荐
设置 HTTPS 协议以确保数据传输的安全性
设置 HTTPS 协议以确保数据传输的安全性
|
25天前
|
安全 网络协议 算法
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
129 4
HTTPS网络通信协议揭秘:WEB网站安全的关键技术