在大型Play 2.5应用程序的一个部分中,我需要对供应商的网站进行TLS。供应商给了我一张证书(P7B证书,如果重要的话),我将使用它。
如果我使用curl
,则很容易:curl --cert thecert.p7b ...
如果我只是连接到该网站,我认为这很简单:我可以在我的application.conf中设置play.server.https.keyStore.path
变量。
但是我需要在一个案例中使用它,而不是在其他案例中使用它,唯一的提示来自这个tantalizing paragraph:
哎呀,好吧。如何创建自定义SSLEngine以支持客户端身份验证?配置SSL证书的另一种方法是提供自定义SSLEngine。这在需要自定义SSLEngine的情况下也很有用,例如在客户端身份验证的情况下。
答案 0 :(得分:0)
以下编译,如果我不使用证书,甚至可以运行,但我必须做更多的测试:
AhcWSClient(
config = AhcWSClientConfig(
wsClientConfig = WSClientConfig(
ssl = SSLConfig(
keyManagerConfig = KeyManagerConfig(
keyStoreConfigs = Seq(KeyStoreConfig(
filePath = Some(pathToCert),
password = Some(password))))))))
.url(url)
.get
.map(_.body)
.map(println)