scala - Scala 或 Java 中的 --cacerts 等同于什么?

标签 scala rest ssl

在我的开发和质量检查环境中,我将使用内部签名的证书访问休息端点。我工作的政策是将内部证书放在我们 Linux 服务器上的单独 bundle 中。

以下内容在 curl 中运行良好:

curl -X GET -H "Content-Type: application/json" -H "Accept: application/json" --negotiate --cacert /etc/pki/tls/out-internal-bundle.pem -u : "https://<dev or qa root>/api/profile/8461869a8b6e4558b20b14411337440b"

但是,我的这个端点的实际客户端是用 Scala 编写的。目前我正在使用 scala.io.Source 打电话:

val url = s"$baseUrl/data-profiler/$id"
using(Source.fromURL(url)) { source => {
  val result = source.mkString
  val jsonAst = result.parseJson
  jsonAst.convertTo[Job]
}}

我想弄清楚如何在我的开发和质量检查环境中使用我们的内部包。有人用 Scala 或 Java 这样做吗?

最佳答案

您需要配置 JVM 使用的“truststore”,在启动 java 时使用“javax.net.ssl.trustStore”选项,即

java -Djavax.net.ssl.trustStore=/etc/pki/tls/out-internal-bundle.jks ...

(如果您使用 SBT 启动您的应用,sbt 将采用相同的 -D 参数)

您需要将 CA 证书转换为 JKS 格式。

参见:

关于scala - Scala 或 Java 中的 --cacerts 等同于什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42354959/

相关文章:

android - 将 SSL 添加到 NFC 连接

java - 如何使用 Jersey Web 服务发布多个文件(图像)。?

javascript - 使用他们的 API 从 AWS S3 获取一个非公开的 JavaScript 文件

java - 如何检查 Java 上的 SSLSocket 连接是否正常?

Scala 增强集合

rest - OpenShift服务代理超时

java - Android TLSv1.2 握手失败

scala - 为什么persist()在Spark中被惰性求值

scala - 了解 Scala 的提取器 - 具有零变量和 bool 结果的模式

scala - Playframework 2.0 中用于身份验证和授权的 LDAP