モジュール java.base
パッケージ javax.security.cert

クラスX509Certificate

java.lang.Object
javax.security.cert.Certificate
javax.security.cert.X509Certificate

@Deprecated(since="9", forRemoval=true) public abstract class X509Certificate extends Certificate
削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
代わりにjava.security.certのクラスを使用してください。
X.509 v1証明書のabstractクラスです。 X.509証明書のバージョン1の属性にアクセスする標準的な方法を提供します。 X.509のv2やv3に固有の属性は、このインタフェースを通じては利用できません。 将来のAPI展開では、完全なX.509 v3属性へのフル・アクセスを提供します。

基本的なX.509形式は、ISO/IECおよびANSI X9によって策定され、次のようにASN.1で記述されます。

 Certificate  ::=  SEQUENCE  {
     tbsCertificate       TBSCertificate,
     signatureAlgorithm   AlgorithmIdentifier,
     signature            BIT STRING  }
 

これらの証明書は、インターネットのセキュリティ・システムで認証などの機能をサポートするために広く使われています。 代表的なアプリケーションには、Privacy Enhanced Mail (PEM)、Transport Layer Security (SSL)、信頼できるソフトウェア配布のためのコード署名、およびSecure Electronic Transactions (SET)などがあります。

これらの証明書は、証明書発行局 (CA)によって管理および保証されています。 CAは、データをX.509標準形式にしてから、そのデータにデジタル署名することにより証明書を作成するサービスです。 CAは信頼できる第三者として機能し、直接には面識のないプリンシパル同士を引き合わせます。 CA証明書は、そのCA自身で、または「ルート」CAなどのほかのCAによって署名されています。

tbsCertificateのASN.1定義は次のとおりです。

 TBSCertificate  ::=  SEQUENCE  {
     version         [0]  EXPLICIT Version DEFAULT v1,
     serialNumber         CertificateSerialNumber,
     signature            AlgorithmIdentifier,
     issuer               Name,
     validity             Validity,
     subject              Name,
     subjectPublicKeyInfo SubjectPublicKeyInfo,
     }
 

X.509証明書をインスタンス化するコーディング例を示します。

 InputStream inStream = new FileInputStream("fileName-of-cert");
 X509Certificate cert = X509Certificate.getInstance(inStream);
 inStream.close();
 
OR
 byte[] certData = <certificate read from a file, say>
 X509Certificate cert = X509Certificate.getInstance(certData);
 

どちらの場合も、X.509証明書をインスタンス化するコードは、実際の実装を特定したりデフォルト実装で初期化したりするのに、cert.provider.x509v1セキュリティ・プロパティの値を使用します。

cert.provider.x509v1プロパティは次のように、X.509用のデフォルト実装に設定されています。

 cert.provider.x509v1=com.sun.security.cert.internal.x509.X509V1CertImpl
 

他の実装をインスタンス化するときには、このcert.provider.x509v1プロパティの値を変更する必要があります。 このプロパティ・ファイルが設定されていない場合は、デフォルト実装が使用されます。 現在のところ、セキュリティ・プロパティにアクセスするうえでセキュリティ制限があるおそれがあるため、この値はクラスが初期化されるときに調査、キャッシュされ、セキュリティ・プロパティにアクセスできない場合はデフォルト実装が代わりに使われます。

ノート: パッケージjavax.security.certのクラスは、旧バージョンのJava Secure Sockets Extension (JSSE)との互換性のために存在します。 新規アプリケーションの場合、このクラスではなく、java.security.certにある標準Java SE証明書クラスを使用するようにしてください。

導入されたバージョン:
1.4
関連項目: