我已经安装了Apache Symfony 4.2服务器,并通过“让我们加密”请求了SSL证书,该证书可与浏览器配合使用。
现在我用Kotlin / Java编写了一个应用程序,该应用程序通过OKHttp和Retrofit与服务器通信。我通过以下方式建立了连接:
val client = OkHttpClient.Builder()
.connectTimeout(60, TimeUnit.SECONDS)
.readTimeout(60, TimeUnit.SECONDS)
.writeTimeout(60, TimeUnit.SECONDS)
.addInterceptor(BasicAuthInterceptor(username, password))
.build()
val retrofit = Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build()
现在我期望,我只需要以baseUrl
而不是https
来开始http
,但是当我尝试连接时,出现了异常
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target)...
我安装了最新的Java版本,因为我在某处写过,较新的版本应接受“让我们加密证书”。尽管如此,我仍然遵循此Guide将证书从Page导入到JVM Truststore中,但这并没有改变。
作为临时工作,我遵循Guide接受所有有效的证书,但是我当然希望正确执行!
有人知道吗,我还能尝试什么?我在MacOs X High Sierra for Development上工作,这就是问题所在。