• Spring Boot配置ssl证书启用HTTPS协议


    生成证书,可以使自签名或者从SSL证书授权中心获得的。
    cmd进入JDK安装目录(D:Javajre1.8.0_181in),利用keytool证书管理工具,生成自签名证书。
    生成命令如下(找不到keytoo命令的先去配置java环境)
    我指定的名字叫tomcat.keystore 别名叫tomcat,密码自己设置,我这里用的tomcat,最后那个直接按得回车
    keytoo命令:

    keytool -genkey -alias tomcat -keyalg RSA -keystore D:/httpsKey/tomcat.keystore
    

      

     

     2.SpringBoot配置SSL
    将生成的自签名证书:tomcat.keystore拷贝到项目根目录下,与application.yml同级,如下图所示:

     

     3.配置application.yml

    server:
      port: 8084
      ssl:
         key-store: classpath:tomcat.keystore #证书的路径
         key-store-password: 123456 #证书密码,请修改为您自己证书的密码
         key-store-type: JKS #证书类型(秘钥库类型)
         key-alias: tomcat #证书别名
         enabled: true #开启HTTPS

    4.http访问自动转https访问
    在启动类中添加如下两个方法,更改tomcat配置

    @EnableSwagger2
    @ComponentScan(basePackages = "com.guodi")
    @SpringBootApplication
    public class Application
            extends SpringBootServletInitializer
    {
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(Application.class);
        }
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
        /**
         * 将http请求变成https请求
         * @return
         */
        @Bean
        public ServletWebServerFactory servletContainer() {
            TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
            tomcat.addAdditionalTomcatConnectors(createStandardConnector());
            return tomcat;
        }
        /**
         * 将http请求变成https请求
         * @return
         */
        private Connector createStandardConnector() {
            Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
            connector.setPort(8083);
            return connector;
        }
     
    }

    在启动的时候就会发现两个端口,一个https,与一个http

  • 相关阅读:
    leetcode刷题-- 4. 贪心
    golang 中的引号
    记录博客的目的
    java返回树形结构的正确姿势
    java -jar xxxx.jar --server.port(指定启动端口无效)
    Spring 中@NotNull, @NotEmpty和@NotBlank之间的区别是什么?
    IntelliJ IDEA远程连接linux,一键上传jar包
    linux 运行Jar包时指定启动端口
    @Validated注解对单个实体类与List集合的验证
    linux -bash: ./startup.sh: /bin/sh^M: 坏的解释器: 没有那个文件或目录
  • 原文地址:https://www.cnblogs.com/huigee/p/14603169.html
Copyright © 2020-2023  润新知