我对整个 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
谢谢!!!
最佳答案
我们遇到了类似的问题,我们的解决方案是在我们的一个域中注册一个子域,A 记录为 127.0.0.1,并为该域获取证书。
- local.example.com -> A记录到127.0.0.1
- 为 local.example.com 请求的 SSL 证书
恐怕这个答案对您来说太晚了,但是它对其他人找到这篇文章很有帮助。
关于android - 使用 HTTPS localhost SSL 证书保护 WebSocket (WSS)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36037510/