zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Python 基础之 线程与进程
    python 基础之 模块
    Python 基础之socket编程(三)
    Python 基础之socket编程(二)
    Python全栈开发之11、进程和线程
    用 Python实现一个ftp+CRT(不用ftplib)
    Python全栈开发之10、网络编程
    Python全栈开发之9、面向对象、元类以及单例
    Python全栈开发之8、装饰器详解
    用python实现一个无界面的2048
  • 原文地址:https://www.cnblogs.com/huigee/p/14603169.html
Copyright © 2011-2022 走看看