JavaSE プラットフォームのバージョン 5.0 では、次の PKI 拡張機能が提供されます。
プロパティー名 | 説明 |
ocsp.enable | このプロパティーの値は、true または false になる。true の場合、OCSP チェックは証明書取り消しチェックの実行中に有効になる。false または設定されていない場合、OCSP チェックは無効になる。 |
ocsp.responderURL | このプロパティーの値は、OCSP 応答者の場所を特定する URL である。次に例を示します。
ocsp.responderURL=http://ocsp.example.net:80 デフォルトでは、OCSP 応答者の場所は、検証される証明書から暗黙的に決定される。RFC 3280 に定義されている Authority Information Access 拡張機能が証明書にない場合、またはオーバーライドが必要な場合に、このプロパティーが使用される。 |
ocsp.responderCertSubjectName | このプロパティーの値は、OCSP 応答者の証明書の主体名である。次に例を示します。
ocsp.responderCertSubjectName="CN=OCSP Responder, O=XYZ Corp" デフォルトでは、OCSP 応答者の証明書は、検証される証明書の発行者のものである。このプロパティーは、デフォルトが適用されない場合に、OCSP 応答者の証明書を特定する。この値は RFC 2253 で定義された文字列の識別名で、証明書パスの検証中に取得した証明書セットの中から証明書を特定する。サブジェクト名だけでは証明書を一意に特定できない場合は、ocsp.responderCertIssuerName と ocsp.responderCertSerialNumber の両方のプロパティーを代わりに使用する必要がある。このプロパティーが設定されている場合は、この 2 つのプロパティーは無視される。 |
ocsp.responderCertIssuerName | このプロパティーの値は、OCSP 応答者の証明書の発行者名である。次に例を示します。
ocsp.responderCertIssuerName="CN=Enterprise CA, O=XYZ Corp" デフォルトでは、OCSP 応答者の証明書は、検証される証明書の発行者のものである。このプロパティーは、デフォルトが適用されない場合に、OCSP 応答者の証明書を特定する。この値は RFC 2253 で定義された文字列の識別名で、証明書パスの検証中に取得した証明書セットの中から証明書を特定する。このプロパティーが設定されている場合、ocsp.responderCertSerialNumber プロパティーも設定されている必要がある。ocsp.responderCertSubjectName プロパティーが設定されている場合、このプロパティーは無視される。 |
ocsp.responderCertSerialNumber | このプロパティーの値は、OCSP 応答者の証明書のシリアル番号である。次に例を示す。
ocsp.responderCertSerialNumber=2A:FF:00 デフォルトでは、OCSP 応答者の証明書は、検証される証明書の発行者のものである。このプロパティーは、デフォルトが適用されない場合に、OCSP 応答者の証明書を特定する。この値は 16 進数の文字列 (コロンまたはスペースで区切られている) で、証明書パスの検証中に取得した証明書セットの中から証明書を特定する。このプロパティーが設定されている場合、ocsp.responderCertIssuerName プロパティーも設定されている必要がある。ocsp.responderCertSubjectName プロパティーが設定されている場合、このプロパティーは無視される。 |
これらのプロパティーは、Java ランタイムの $JAVA_HOME/jre/lib/security/java.security ファイル内で静的に設定されるか、または java.security.Security.setProperty() メソッドを使って動的に設定されます。
デフォルトでは、OCSP チェックは有効ではありません。ocsp.enable プロパティーを「true」に設定すると有効になります。その他のプロパティーは、オプションで使用できます。OCSP チェックは、取り消しチェックも有効になっている場合にのみ有効になります。取り消しチェックは、PKIXParameters.setRevocationEnabled() メソッドを使用して有効にできます。
OCSP チェックは、取り消しチェック中に証明書の取り消しリスト (CRL) と連動して機能します。次は、OCSP と CRL の相互作用のサマリーです。CRL でのフェイルオーバーは、OCSP に問題が発生した場合にかぎり、発生します。OCSP 応答者が、証明書が取り消されたことまたは取り消されていないことを確認した場合は、フェイルオーバーは発生しません。
PKIXParameters RevocationEnabled (default=true) | ocsp.enable (default=false) | 動作 |
true | true | OCSP を使用した取り消しチェック、 CRL を使用したフェイルオーバー |
true | false | CRL を使用した取り消しチェックのみ |
false | true | 取り消しチェックなし |
false | false | 取り消しチェックなし |
取り消しチェックおよび証明書の取り消しリストの詳細については、「Java Certification Path API プログラマーズガイド」を参照してください。
java.security.cert.X509CRL クラスには getRevokedCertificate(BigInteger) メソッドがあり、証明書のシリアル番号を基に CRL エントリを取得します。ただし、間接的 CRL では、シリアル番号は証明書を一意に特定しません。J2SE 5 では、getRevokedCertificate() のオーバーロード形式が、証明書の CRL エントリを取得するために追加されました。
J2SE 5 より前では、java.security.cert.X509CRLEntry クラスには CRL エントリが記述する証明書の発行者を取得するメソッドがありませんでした。J2SE 5 では、この問題に対処するため、getCertificateIssuer() メソッドが追加されました。
public TrustAnchor(X500Principal caPrincipal, PublicKey pubKey, byte[] nameConstraints); public final X500Principal getCA();
public X500Principal getIssuer(); public void setIssuer(X500Principal issuer); public X500Principal getSubject(); public void setSubject(X500Principal subject);
public void setIssuers(Collection<X500Principal> issuers); public void addIssuer(X500Principal issuer); public Collection<X500Principal> getIssuers();
X509Certificate クラス内の getSubjectDN() メソッドと getIssuerDN() メソッド、および X509CRL クラス内の getIssuerDN() メソッドには、その仕様から形式が指定されていない識別名を返すという問題があります。その結果、異なる実装からは実装に固有のオブジェクトが返され、アプリケーションの相互運用性が低くなり、移植できなくなります。これらのメソッドは、使用しないことが強く推奨されています。その代わり、X500Principal のインスタンスを返すメソッドをアプリケーションで使用する必要があります。
public final String getPolicyQualifierId() public final byte[] getEncoded() public final byte[] getPolicyQualifier()
Alias name: equifaxsecureebusinessca1 Owner: CN=Equifax Secure eBusiness CA-1, O=Equifax Secure Inc., C=US Alias name: equifaxsecureca Owner: OU=Equifax Secure Certificate Authority, O=Equifax, C=US Alias name: geotrustglobalca Owner: CN=GeoTrust Global CA, O=GeoTrust Inc., C=US Alias name: equifaxsecureglobalebusinessca1 Owner: CN=Equifax Secure Global eBusiness CA-1, O=Equifax Secure Inc., C=US Alias name: equifaxsecureebusinessca2 Owner: OU=Equifax Secure eBusiness CA-2, O=Equifax Secure, C=US Alias name: verisignclass1g3ca Owner: CN=VeriSign Class 1 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US Issuer: CN=VeriSign Class 1 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US Alias name: verisignclass2g2ca Owner: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 2 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US Issuer: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 2 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US Alias name: verisignclass3g3ca Owner: CN=VeriSign Class 3 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US Alias name: verisignclass1g2ca Owner: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 1 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US Issuer: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 1 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US Alias name: verisignclass2g3ca Owner: CN=VeriSign Class 2 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US Issuer: CN=VeriSign Class 2 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US Alias name: verisignclass3g2ca Owner: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 3 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US Issuer: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 3 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US