0

我想使用 Play WS 在我的应用程序中调用多个其他服务。

鉴于此文档,https://www.playframework.com/documentation/2.4.x/WSQuickStart

我知道如何将信任管理器指向 PEM 文件。但是这里的问题是,我想调用多个 Web 服务并且每个服务都有不同的根证书怎么样?如何指定多个证书?

play.ws.ssl {
  trustManager = {
    stores = [
      { type = "PEM", path = "/path/to/cert/globalsign.crt" }
    ]
  }
}

另外,如果某些服务使用了公共信任证书,上述代码是否会对这些服务生效?

4

1 回答 1

1

要使用多个证书,您可以执行以下任何操作:

  1. 仅从下面将每个证书添加到 ssl 配置中,如globalsign.crtservice2.crt
  2. 创建一个信任库,将每个证书添加到信任库,将信任库提供给 ws。这将与services.jks一样,仅在下面
  3. 或者 1 和 2 的组合..

要依赖公共证书,您还需要告诉 play-ws 也使用默认的信任库。

play.ws.ssl {
  trustManager = {
    stores = [
      { type = "PEM", path = "/path/to/cert/globalsign.crt" }
      { type = "PEM", path = "/path/to/cert/service2.crt" }
      { type = "JKS", path = "/path/to/truststore/services.jks" } #Added trust store
      { path: ${java.home}/lib/security/cacerts } # Fallback to default JSSE trust store
    ]
  }
}

请参阅https://www.playframework.com/documentation/2.4.x/ExampleSSLConfig

您可能需要参考以下内容来创建和管理信任库: https : //docs.oracle.com/cd/E19509-01/820-3503/6nf1il6er/index.html,https: //docs.oracle.com /cd/E19830-01/819-4712/ablqw/index.html

于 2016-01-12T17:47:43.403 回答