让我们加密JVM不接受的SSL证书

时间:2019-01-17 16:28:18

标签: java ssl okhttp lets-encrypt truststore

我已经安装了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上工作,这就是问题所在。

0 个答案:

没有答案