Documentation

You are viewing the documentation for the 2.6.x development release. The latest stable release series is 2.4.x.

§証明書失効の設定

JSSE における証明書の失効は、ふたつの方法: 証明書失効リスト (CRL) と OCSP によって行うことができます。

証明書の失効は、Heartbleed などのようにサーバの秘密鍵が危険にさらされている場合に便利です。

JSSE ではデフォルトで証明書失効が無効化されています。これは二箇所で定義されています:

OCSP を有効にするには、コマンドラインで以下のシステムプロパティを設定しなければなりません:

java -Dcom.sun.security.enableCRLDP=true -Dcom.sun.net.ssl.checkRevocation=true

上記を実行後、クライアントで証明書失効を有効化することができます:

play.ws.ssl.checkRevocation = true

checkRevocation を設定すると、内部で自動的に ocsp.enable セキュリティプロパティが設定されます:

java.security.Security.setProperty("ocsp.enable", "true")

こうすると、HTTPS リクエストの送信時に OCSP による確認が行われるようになります。

注意: OCSP を有効にするには、OCSP レスポンダへの往復が必要です。これは HTTPS 呼び出しに顕著なオーバーヘッドを加え、呼び出しを最大で 33% 遅く する可能性があります。これを緩和するテクニックである OCSP ステープリングは JSSE でサポートされていません。

または、静的な CRL リストを使いたい場合はリストの URL を定義することができます:

play.ws.ssl.revocationLists = [ "http://example.com/crl" ]

§デバッグ

証明書失効が有効になっていることを確認するには、以下のオプションを設定します:

play.ws.ssl.debug = {
 certpath = true
 ocsp = true
}

こうすると、以下のような出力が確認できるはずです:

certpath: -Using checker7 ... [sun.security.provider.certpath.RevocationChecker]
certpath: connecting to OCSP service at: http://gtssl2-ocsp.geotrust.com
certpath: OCSP response status: SUCCESSFUL
certpath: OCSP response type: basic
certpath: Responder's name: CN=GeoTrust SSL CA - G2 OCSP Responder, O=GeoTrust Inc., C=US
certpath: OCSP response produced at: Wed Mar 19 13:57:32 PDT 2014
certpath: OCSP number of SingleResponses: 1
certpath: OCSP response cert #1: CN=GeoTrust SSL CA - G2 OCSP Responder, O=GeoTrust Inc., C=US
certpath: Status of certificate (with serial number 159761413677206476752317239691621661939) is: GOOD
certpath: Responder's certificate includes the extension id-pkix-ocsp-nocheck.
certpath: OCSP response is signed by an Authorized Responder
certpath: Verified signature of OCSP Response
certpath: Response's validity interval is from Wed Mar 19 13:57:32 PDT 2014 until Wed Mar 26 13:57:32 PDT 2014
certpath: -checker7 validation succeeded

§参考文献

Next: ホスト名検証の設定


このドキュメントの翻訳は Play チームによってメンテナンスされているものではありません。 間違いを見つけた場合、このページのソースコードを ここ で確認することができます。 ドキュメントガイドライン を読んで、お気軽にプルリクエストを送ってください。