欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

springboot添加https服务器的方法

程序员文章站 2023-12-19 17:25:46
什么是https 要说https我们得先说ssl(secure sockets layer,安全套接层),这是一种为网络通信提供安全及数据完整性的一种安全协议,ssl在网...

什么是https

要说https我们得先说ssl(secure sockets layer,安全套接层),这是一种为网络通信提供安全及数据完整性的一种安全协议,ssl在网络传输层对网络连接进行加密。ssl协议可以分为两层:ssl记录协议(ssl record protocol),它建立在可靠的传输协议如tcp之上,为高层协议提供数据封装、压缩、加密等基本功能支持;ssl握手协议(ssl handshake protocol),它建立在ssl记录协议之上,用于在实际数据传输开始之前,通信双方进行身份认证、协商加密算法、交换加密密钥等。在web开发中,我们是通过https来实现ssl的。https是以安全为目标的http通道,简单来说就是http的安全版,即在http下加入ssl层,所以说https的安全基础是ssl,不过这里有一个地方需要小伙伴们注意,就是我们现在市场上使用的都是tls协议(transport layer security,它来源于ssl),而不是ssl,只不过由于ssl出现较早并且被各大浏览器支持因此成为了https的代名词,。你可以把https和ssl的关系理解成iphone和富土康的关系,大概就是这样哈。

在安卓开发中发现很多app都是https访问,为了自己方便测试,自己搭建一个简单的https服务器。

首先使用keytool生成证书,该生成的证书会被检测到有风险,自己使用无所谓啦:)

keytool -genkey -alias tomcat  -storetype pkcs12 -keyalg rsa -keysize 2048  -keystore keystore.p12 -validity 3650

1.-storetype 指定密钥仓库类型

2.-keyalg 生证书的算法名称,rsa是一种非对称加密算法

3.-keysize 证书大小

4.-keystore 生成的证书文件的存储路径

5.-validity 证书的有效期

然后根据提示填写信息就可以了

再在springboot的配置文件中添加https的配置

server.port=8443
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=123456
server.ssl.keystoretype=pkcs12
server.ssl.keyalias=tomcat

简单配置以上就可以了

可以将http重定向到https,做如下配置就ok啦这里写代码片

 @bean
  public embeddedservletcontainerfactory servletcontainer() {
    tomcatembeddedservletcontainerfactory tomcat = new tomcatembeddedservletcontainerfactory() {
      @override
      protected void postprocesscontext(context context) {
        securityconstraint securityconstraint = new securityconstraint();
        securityconstraint.setuserconstraint("confidential");
        securitycollection collection = new securitycollection();
        collection.addpattern("/*");
        securityconstraint.addcollection(collection);
        context.addconstraint(securityconstraint);
      }
    };
    tomcat.addadditionaltomcatconnectors(initiatehttpconnector());
    return tomcat;
  }
  private connector initiatehttpconnector() {
    connector connector = new connector("org.apache.coyote.http11.http11nioprotocol");
    connector.setscheme("http");
    connector.setport(8080);
    connector.setsecure(false);
    connector.setredirectport(8443);
    return connector;
  }

在安卓端访问也可以用下面方法

// 生成jks证书
keytool -genkey -alias tomcat -keyalg rsa -keystore dahai_server.jks -validity 3600 -storepass 123456

生成签名文件

keytool -export -alias tomcat -file dahai_server.cer -keystore dahai_server.jks -storepass 123456

总结

以上所述是小编给大家介绍的springboot添加https服务器的方法,希望对大家有所帮助

上一篇:

下一篇: