在我的开发和质量保证环境中,我将使用内部签名的证书来达到其他目的。我工作的策略是将内部证书放在Linux服务器上的单独软件包中。
以下在卷曲时效果很好: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中这样做吗?
最佳答案
启动Java时,您需要使用“ javax.net.ssl.trustStore
”选项配置JVM使用的“信任库”,即
java -Djavax.net.ssl.trustStore=/etc/pki/tls/out-internal-bundle.jks ...
(如果使用SBT启动应用,则
sbt
将采用相同的-D
参数)您需要将CA证书转换为JKS格式。
看到:
Curl cacert to Java HttpClient equivalent
https://docs.oracle.com/cd/E19509-01/820-3503/6nf1il6er/index.html
http://docs.oracle.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#X509TrustManager