我对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
谢谢!!!
localhost
Web socket。这个 Web 服务器是否也托管在 Android 设备上?如果它是在其他地方托管的 Web 服务器,我不明白它如何使用仅通过localhost
可用的 Web socket。关于 SSL 和localhost
,据我所知是不可能的。 - CommonsWarelocalhost
。这个实现可以正常工作,并且可以发送数据。我知道逻辑不是问题所在。感谢您的回复。 - ᴛʜᴇᴘᴀᴛᴇʟWebView
上使用addJavascriptInterface()
。 - CommonsWare