【问题标题】:Secure WebSocket (WSS) with HTTPS localhost SSL certificate?使用 HTTPS 本地主机 SSL 证书保护 WebSocket (WSS)?
【发布时间】:2016-07-02 10:35:09
【问题描述】:

我对整个 WebSocket 和 SSL 证书有点陌生。

所以我在 Android 端创建了自己的 WebSocket 服务器,网站是客户端。我能够使其与常规 WebSocket (ws://) 一起使用,但由于它需要 SSL 证书,所以它不能使用安全的 WebSocket (wss://)。

我的问题是如何获得 SSL 证书?根据我的阅读,SSL 证书是基于域的。我需要它用于本地主机。我需要这个地址:

wss://localhost:8080/ws/main

我如何才能获得可以与localhost 一起使用的 SSL 证书。

感谢您的宝贵时间!

======================= 编辑=====================

我这样做的原因: 我的 Android 应用程序中有一个蓝牙服务,它将从连接的健康蓝牙设备(如体重秤和血压机)获取数据。我已经实现了这部分,我想获取这些数据并将其传递给网站。 WebSocket 似乎更容易,因为用户将打开我的应用程序,当他们称重时,它会自动用体重秤的重量填充网站上的字段。我希望我清楚这一点。

为此,我需要有一种方法将体重或血压值从 Java (Android) 传递到在 WebView 中加载的网站。所以我认为 WebSocket 是最简单的方法。

如果您认为有更简单的方法,请告诉我。

另外,我已经尝试过自签名证书,但出现以下错误:

I/X509Util: Failed to validate the certificate chain, error: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

或

Exception=javax.net.ssl.SSLException: Error occured in delegated task:javax.net.ssl.SSLException: Not trusted server certificate

谢谢!!!

【问题讨论】:

  • 从安全角度来看,在 Android 设备上打开端口是一个冒险的提议。除此之外,请解释“网站”如何使用localhost Web 套接字。此 Web 服务器是否也托管在 Android 设备上?如果它是托管在其他地方的 Web 服务器,我看不出它如何使用只能通过 localhost 获得的 Web 套接字。关于 SSL 和 localhost,这是不可能的 AFAIK。
  • websocket 服务器在 Android 应用程序中,我在同一应用程序的 web 视图中加载 websocket 客户端(网站)。这就是为什么它是localhost。此实现适用于常规 websocket,我能够发送数据。我知道逻辑不是问题。感谢您的回复。
  • 我不清楚你为什么首先使用 WebSockets,因为有更有效和更安全的选项可以让设备上的 Web 应用程序与你的 Java 代码通信。鉴于数据包没有离开您的设备,SSL 似乎毫无意义。无论如何,除了可能是自签名 SSL 证书之外,我不知道有任何 SSL 加密 localhost 的方法。
  • @CommonsWare 请在帖子中查看我的编辑。我已经解释了我为什么这样做。再次感谢!!
  • "如果您认为有更简单的方法,请告诉我" -- addJavascriptInterface() on WebView。

标签: android ssl https websocket


【解决方案1】:

我们遇到了类似的问题,我们的解决方案是向我们的一个域注册一个子域,其 A 记录为 127.0.0.1,并获得该域的证书。

  • local.example.com -> 到 127.0.0.1 的记录
  • 为 local.example.com 请求 SSL 证书

恐怕这个答案对你来说为时已晚,但它可以帮助其他人找到这篇文章。

【讨论】:

    猜你喜欢
    • 2012-01-21
    • 2015-01-31
    • 2016-04-17
    • 2020-02-10
    • 1970-01-01
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    • 2016-11-02
    相关资源
    最近更新 更多