【发布时间】:2018-02-28 14:56:36
【问题描述】:
我有以下 kotlin 代码:
val urlPath = "https://10.0.2.2:8080"
var data: String
try {
data = URL(urlPath).readText()
} catch (e: Exception) {
Log.e("doInBackground", "Exception caught: ${e.localizedMessage}")
error = when (e) {
is MalformedURLException -> "Invalid URL"
is IOException -> "Network Error"
else -> {
"Network error: ${e.localizedMessage}"
}
}
}
如果我使用上面的代码连接到 http 服务器,上面的代码可以工作。但是,当我尝试使用自签名证书连接到 https 服务器时,它会失败。有没有办法允许本地主机上的 https 连接(仅),即使证书是自签名的?
【问题讨论】:
-
服务器是否只允许相互认证?否则,您只需要使用自定义 TrustStore 信任提供的服务器证书
-
这是一个简单的 golang https 服务器,通过 http.ListenAndServerTLS 启动,因此没有为相互身份验证配置任何额外内容。如何使用 URL 上的 kotlin 扩展创建 TrustStore?我无法从谷歌轻松找到任何代码示例。
-
这不是 Kotlin 特定的,google for Java JSSE
标签: java android kotlin kotlin-android-extensions kotlin-extension