1. https出现的背景:(1)都知道http传输协议是裸漏的,明文传输的,极易被黑客拦截,因此,(2)人们想出的使用加密,也就是 对称加密 例如aes,不过这个由于因为对称加密需要每个客户端和服务器有独立一套,当客户端多的时候维护困难,因此 有了 非对称加密 例如 RSA,RSA,这个是1977年 麻省理工学院三个程序员发明的,很厉害,目前还未被破解,扯远了

RSA是一种公钥密码体制,现在使用得很广泛。如果对RSA本身有兴趣的,后面看我有没有时间写个RSA的具体介绍。

RSA密码体制是一种公钥密码体制,公钥公开,私钥保密,它的加密解密算法是公开的。 由公钥加密的内容可以并且只能由私钥进行解密,并且由私钥加密的内容可以并且只能由公钥进行解密。也就是说,RSA的这一对公钥、私钥都可以用来加密和解密,并且一方加密的内容可以由并且只能由对方进行解密。貌似RSA是很安全,其实有个不足的地方,就是当服务器发送给客户端的时候,被黑客拦截了,用公开的公钥解密,是可以看到里面的内容的,(3)所以就有了 SSL,涉及SSL证书等等。。。内容太多,可以百度看看

2.可以自己生成 SSL证书,但是这个不被官方存档认可的,有钱可以去阿里云买一个或者腾讯,嘻嘻嘻

keytool -genkeypair -alias tomcat -keyalg RSA -keystore E:\test.key

springboot druid mysql开启ssl_SSL


//其中-alias是证书的别名,RSA是加密算法,-keystore后是输出证书的路径所在这个时候已经生成了 SSL 证书,那么现在就需要配置

springboot druid mysql开启ssl_tomcat_02


下一步 在启动类中配置

@SpringBootApplication
public class TestHttpsApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestHttpsApplication.class, args);
    }
    // 在某配置类中添加如下内容
    // 监听的http请求的端口,需要在application配置中添加http.port=端口号  如80
    Integer httpPort=8848;

    //正常启用的https端口 如8080
    Integer httpsPort=8847;
    /**
     * it's for set http url auto change to https
     */
    @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;
    }


}

最后启动 服务,在浏览器中访问~~~~~

springboot druid mysql开启ssl_端口号_03