【发布时间】:2019-05-13 08:02:37
【问题描述】:
我有一个使用自签名证书运行的 Ktor 服务器应用程序(rest api)。
它在浏览器中工作正常(在警告和确认之后)端口 80 被重定向到 8443。
但如果我从 Ktor Apache 客户端尝试此操作:
fun main(args: Array<String>) = runBlocking {
val client = HttpClient(Apache) {
install(JsonFeature) {
serializer = GsonSerializer()
}
}
val job = GlobalScope.launch {
try {
//self-signed certificate
val resultWillFail = client.get<String>("https://10.0.0.11:8443/get-my-services")
println("${resultWillFail}")
val resultOk = client.get<String>("https://en.wikipedia.org/wiki/Main_Page") //ok
println("${resultOk}")
} catch (e: Exception) {
println("Error: ${e.message}")
}
}
job.join()
}
我对@987654321@ 的请求将失败:
错误:一般 SSLEngine 问题
我也尝试过使用 curl:
curl: (77) schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - 颁发了证书链 由不受信任的权威机构提供。
所以我的问题是:如何在 ktor 客户端 (Apache) 中使用自签名证书?
谢谢, J
【问题讨论】: