【问题标题】:Spring boot to handle both http and HTTPS requestsSpring boot 处理 http 和 HTTPS 请求
【发布时间】:2018-03-20 10:12:55
【问题描述】:

我想将 SSL 添加到我的 Spring Boot 服务器的连接中。到目前为止,我有一个 Arduino、一个应用程序和一个连接到服务器并向其发出请求的 mongodb 数据库。所有的通信都是 HTTP。我计划在 HTTPS 下制作所有内容,但我想知道服务器是否可以同时处理 http 和 HTTPS 连接,因为我计划首先在应用程序和服务器之间实现 SSL,其余部分使用 http。

我正在使用 Spring Boot。

我将研究将 SSL 添加到 arduino 的可行性,但我想知道服务器是否可以同时处理 Https 和 http 请求,例如arduino 使用 http 发送请求,Android 使用 https 发送请求。因为我计划完全添加 SSL,但暂时,我会尝试让 Android 应用程序中的 SSL 进行切断,因为我认为这会更容易。

【问题讨论】:

    标签: android spring ssl spring-boot https


    【解决方案1】:

    我个人认为最好使用 反向代理。我最喜欢的是NGINX。除了保护连接,它还可以处理负载平衡、故障转移、HTTP -> HTTPS 重定向等等。

    要生成 SSL 证书,您可以使用Certbot

    【讨论】:

      【解决方案2】:

      使用以下代码处理 https 和 http

      if (requestUrl.getProtocol().equalsIgnoreCase("https")) {
              setHostVerifier();
              SSLContext sc = SSLContext.getInstance("TLSv1.2");
              sc.init(null,
                      new TrustManager[] { new TrustAllX509TrustManager() },
                      new java.security.SecureRandom());
              HttpsURLConnection
              .setDefaultSSLSocketFactory(sc.getSocketFactory());
              urlconnection = (HttpsURLConnection) requestUrl.openConnection();
          } else {
              urlconnection = (HttpURLConnection) requestUrl.openConnection();`enter code here`
          }
      

      【讨论】:

      • 我尝试使用此代码,但找不到 setHostVerifier();new TrustAllX509TrustManager()。我可以知道在哪里可以找到它们吗?另外,如何将其重定向到不同的 SpringBoot 控制器?
      猜你喜欢
      • 2016-01-24
      • 1970-01-01
      • 1970-01-01
      • 2019-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-23
      相关资源
      最近更新 更多