什么是Scala或Java中的--cacerts?

时间:2017-02-20 21:57:42

标签: scala rest ssl

在我的开发和qa环境中,我将使用内部签名的证书来访问休息端点。我工作的策略是将内部证书放在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]
}}

我想弄清楚在我的dev和qa环境中如何使用我们的内部包。有人在Scala或Java中做过吗?

2 个答案:

答案 0 :(得分:1)

您需要配置JVM使用的“truststore”,启动java时使用“java -Djavax.net.ssl.trustStore=/etc/pki/tls/out-internal-bundle.jks ... ”选项,即

sbt

(如果您使用SBT启动应用,-D将采用相同的DisplayMetrics metrics = mContext.getResources().getDisplayMetrics(); Bitmap bitmap = Bitmap.createBitmap((int) (15 * metrics.density), (int) (15 * metrics.density), Bitmap.Config.ARGB_8888); // 15dp x 15dp Canvas canvas = new Canvas(bitmap); // clear the bitmap with a transparent color canvas.drawColor(Color.TRANSPARENT); Paint paint = new Paint(); paint.setStrokeWidth(2 * metrics.density); // 2dp, the circle width // the external circle, large as the bitmap paint.setColor(Color.RED); canvas.drawCircle(bitmap.getWidth() / 2, bitmap.getHeight() / 2, bitmap.getWidth() / 2, paint); // the internal one, smaller than the first one paint.setColor(Color.GREEN); canvas.drawCircle(bitmap.getWidth() / 2, bitmap.getHeight() / 2, bitmap.getWidth() / 2 - 3 * metrics.density, paint); 参数。

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

请参阅:

答案 1 :(得分:-2)

我完全建议你使用Gatling来做这类事情。 Gatling是一个非常酷的负载测试框架,它为许多协议提供支持,例如jms,jdbc,当然还包括http等。请在这里查看http://gatling.io/#/(此框架基于Scala构建),它为您要搜索的内容提供支持