§設定例
TLS は混乱しがちです。ここでは手助けとなる設定例をいくつか紹介します。
§内部 web サービスへの接続
最新の TLS 実装で設定された単一の内部 web サービスに WS を使って通信する場合、外部 CA を使う必要はありません。内部証明書は正常に動作し、間違いなく CA システム より安全 です。
証明書の生成 の章を読んで自己署名証明書を生成し、クライアントに CA の公開証明書を信頼するよう伝えてください。
play.ws.ssl {
trustManager = {
stores = [
{ type = "JKS", path = "exampletrust.jks" }
]
}
}
§クライアント認証を伴う内部 web サービスへの接続
クライアント認証を使う場合、秘密鍵と、対応する公開鍵を含む X.509 証明書から構成された PrivateKeyEntry を含むキーマネージャに、キーストアを含める必要があります。証明書の生成 の章の “クライアント認証の設定” を参照してください。
play.ws.ssl {
keyManager = {
stores = [
{ type = "JKS", path = "client.jks", password = "changeit1" }
]
}
trustManager = {
stores = [
{ type = "JKS", path = "exampletrust.jks" }
]
}
}
§複数の外部 web サービスへの接続
複数の web サービスと通信する場合、ひとつのクライアントに複数のストアを設定するとより便利かもしれません:
play.ws.ssl {
trustManager = {
stores = [
{ type = "PEM", path = "service1.pem" }
{ path = "service2.jks" }
{ path = "service3.jks" }
]
}
}
クライアント認証が必要な場合は、複数のストアにキーマネージャを設定します:
play.ws.ssl {
keyManager = {
stores = [
{ type: "PKCS12", path: "keys/service1-client.p12", password: "changeit1" },
{ type: "PKCS12", path: "keys/service2-client.p12", password: "changeit2" },
{ type: "PKCS12", path: "keys/service3-client.p12", password: "changeit3" }
]
}
}
§内部および外部サーバ
同じプロファイルの WS を使って内部と外部の両方のサーバにアクセスする場合、同様に デフォルトの JSSE トラストストアを含めることになるでしょう:
play.ws.ssl {
trustManager = {
stores = [
{ path: exampletrust.jks } # Added trust store
{ path: ${java.home}/lib/security/cacerts } # Fallback to default JSSE trust store
]
}
}
Next: デフォルト SSLContext を使う
このドキュメントの翻訳は Play チームによってメンテナンスされているものではありません。 間違いを見つけた場合、このページのソースコードを ここ で確認することができます。 ドキュメントガイドライン を読んで、お気軽にプルリクエストを送ってください。