- java.lang.Object
-
- javax.security.cert.Certificate
-
- javax.security.cert.X509Certificate
-
@Deprecated(since="9") public abstract class X509Certificate extends Certificate
非推奨。代わりに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();
ORbyte[] 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
- 関連項目:
Certificate
,X509Extension
,セキュリティ・プロパティ
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 X509Certificate()
非推奨。
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 非推奨のメソッド 修飾子と型 メソッド 説明 abstract void
checkValidity()
非推奨。証明書が現在有効であるかどうかを判定します。abstract void
checkValidity(Date date)
非推奨。指定された日付が、証明書の有効期間内であるかどうかを判定します。static X509Certificate
getInstance(byte[] certData)
非推奨。X509Certificateオブジェクトをインスタンス化し、指定したバイト配列で初期化します。static X509Certificate
getInstance(InputStream inStream)
非推奨。X509Certificateオブジェクトをインスタンス化し、入力ストリームinStream
から読み取られたデータで初期化します。abstract Principal
getIssuerDN()
非推奨。証明書からissuer
(発行者識別名)値を取得します。abstract Date
getNotAfter()
非推奨。証明書の有効期間からnotAfter
の日付を取得します。abstract Date
getNotBefore()
非推奨。証明書の有効期間からnotBefore
の日付を取得します。abstract BigInteger
getSerialNumber()
非推奨。証明書からserialNumber
値を取得します。abstract String
getSigAlgName()
非推奨。証明書の署名アルゴリズム名を取得します。abstract String
getSigAlgOID()
非推奨。証明書から署名アルゴリズムのOID文字列を取得します。abstract byte[]
getSigAlgParams()
非推奨。この証明書の署名アルゴリズムから、DERでエンコードされた署名アルゴリズム・パラメータを取得します。abstract Principal
getSubjectDN()
非推奨。証明書からsubject
(サブジェクト識別名)値を取得します。abstract int
getVersion()
非推奨。証明書からversion
(バージョン番号)値を取得します。-
クラス javax.security.cert.Certificateで宣言されたメソッド
equals, getEncoded, getPublicKey, hashCode, toString, verify, verify
-
-
-
-
メソッドの詳細
-
getInstance
public static final X509Certificate getInstance(InputStream inStream) throws CertificateException
非推奨。X509Certificateオブジェクトをインスタンス化し、入力ストリームinStream
から読み取られたデータで初期化します。 この実装(X509Certificateは抽象クラス)は、cert.provider.x509v1
セキュリティ・プロパティの値として指定したクラスによって提供されます。ノート: 1つのDERでエンコードされた証明書だけが入力ストリームであることが前提となります。 また、すべてのX509Certificateサブクラスでは、次の形式のコンストラクタを提供しなければいけません。
public <subClass>(InputStream inStream) ...
- パラメータ:
inStream
- 証明書を初期化するために読み取られるデータを保持する入力ストリーム。- 戻り値:
- 入力ストリームからのデータで初期化されたX509Certificateオブジェクト。
- 例外:
CertificateException
- クラスの初期化時、または証明書の解析時にエラーが発生した場合。
-
getInstance
public static final X509Certificate getInstance(byte[] certData) throws CertificateException
非推奨。X509Certificateオブジェクトをインスタンス化し、指定したバイト配列で初期化します。 この実装(X509Certificateは抽象クラス)は、cert.provider.x509v1
セキュリティ・プロパティの値として指定したクラスによって提供されます。ノート: すべてのX509Certificateサブクラスでは、次の形式のコンストラクタを提供する必要があります。
public <subClass>(InputStream inStream) ...
- パラメータ:
certData
- DERでエンコードされた証明書を含むバイト配列。- 戻り値:
certData
からのデータで初期化されたX509Certificateオブジェクト。- 例外:
CertificateException
- クラスの初期化時、または証明書の解析時にエラーが発生した場合。
-
checkValidity
public abstract void checkValidity() throws CertificateExpiredException, CertificateNotYetValidException
非推奨。証明書が現在有効であるかどうかを判定します。 現在の日時が、証明書で指定された有効期間内であるかどうかを調べます。有効期間は、証明書が有効である最初の日時と最後の日時の2つの日時値から成ります。 これはASN.1で次のように定義されます。
validity Validity Validity ::= SEQUENCE { notBefore CertificateValidityDate, notAfter CertificateValidityDate } CertificateValidityDate ::= CHOICE { utcTime UTCTime, generalTime GeneralizedTime }
- 例外:
CertificateExpiredException
- 証明書の有効期限が切れている場合。CertificateNotYetValidException
- 証明書がまだ有効になっていない場合。
-
checkValidity
public abstract void checkValidity(Date date) throws CertificateExpiredException, CertificateNotYetValidException
非推奨。指定された日付が、証明書の有効期間内であるかどうかを判定します。 つまり、指定された日時に証明書が有効であるかどうかを調べます。- パラメータ:
date
- 指定された日時にこの証明書が有効であるかどうかを調べるDate。- 例外:
CertificateExpiredException
- 指定されたdate
に証明書が期限切れになっている場合。CertificateNotYetValidException
- 指定されたdate
に証明書がまだ有効になっていない場合。- 関連項目:
checkValidity()
-
getVersion
public abstract int getVersion()
非推奨。証明書からversion
(バージョン番号)値を取得します。 ASN.1定義は次のとおりです。version [0] EXPLICIT Version DEFAULT v1 Version ::= INTEGER { v1(0), v2(1), v3(2) }
- 戻り値:
- ASN.1エンコーディングによるバージョン番号(0、1または2)。
-
getSerialNumber
public abstract BigInteger getSerialNumber()
非推奨。証明書からserialNumber
値を取得します。 シリアル番号は、証明書発行局によって各証明書に割り当てられる整数値です。 シリアル番号は、指定されたCAによって発行された各証明書に対して一意である必要があります。つまり、発行者名とシリアル番号によって一意の証明書が識別されます。 ASN.1定義は次のとおりです。serialNumber CertificateSerialNumber CertificateSerialNumber ::= INTEGER
- 戻り値:
- シリアル番号。
-
getIssuerDN
public abstract Principal getIssuerDN()
非推奨。証明書からissuer
(発行者識別名)値を取得します。 発行者名は証明書の署名と発行を行なったエンティティを識別します。発行者名フィールドには、X.500識別名(DN)が格納されます。 ASN.1定義は次のとおりです。
issuer Name Name ::= CHOICE { RDNSequence } RDNSequence ::= SEQUENCE OF RelativeDistinguishedName RelativeDistinguishedName ::= SET OF AttributeValueAssertion AttributeValueAssertion ::= SEQUENCE { AttributeType, AttributeValue } AttributeType ::= OBJECT IDENTIFIER AttributeValue ::= ANY
Name
には、国名などの属性とそれに対応する、USなどの値からなる階層的な名前を記述します。AttributeValue
コンポーネントの型は、AttributeType
によって決まります。一般的には、directoryString
です。directoryString
は、通常PrintableString
、TeletexString
、UniversalString
のいずれかです。- 戻り値:
- 名前が発行者識別名であるPrincipal。
-
getSubjectDN
public abstract Principal getSubjectDN()
非推奨。証明書からsubject
(サブジェクト識別名)値を取得します。 ASN.1定義は次のとおりです。subject Name
Name
およびその他の関連する定義については、getIssuerDN
を参照してください。- 戻り値:
- 名前がサブジェクト名であるPrincipal。
- 関連項目:
getIssuerDN()
-
getNotBefore
public abstract Date getNotBefore()
非推奨。証明書の有効期間からnotBefore
の日付を取得します。 該当するASN.1定義は次のとおりです。validity Validity Validity ::= SEQUENCE { notBefore CertificateValidityDate, notAfter CertificateValidityDate } CertificateValidityDate ::= CHOICE { utcTime UTCTime, generalTime GeneralizedTime }
- 戻り値:
- 有効期間の開始日。
- 関連項目:
checkValidity()
-
getNotAfter
public abstract Date getNotAfter()
非推奨。証明書の有効期間からnotAfter
の日付を取得します。 該当するASN.1定義については、getNotBefore
を参照してください。- 戻り値:
- 有効期間の終了日。
- 関連項目:
checkValidity()
-
getSigAlgName
public abstract String getSigAlgName()
非推奨。証明書の署名アルゴリズム名を取得します。 たとえば、文字列「SHA-1/DSA」などです。 ASN.1定義は次のとおりです。signatureAlgorithm AlgorithmIdentifier AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL } -- contains a value of the type -- registered for use with the -- algorithm object identifier value
アルゴリズム名は
algorithm
OID文字列から判定されます。- 戻り値:
- 署名アルゴリズム名。
-
getSigAlgOID
public abstract String getSigAlgOID()
非推奨。証明書から署名アルゴリズムのOID文字列を取得します。 OIDはピリオドで区切られた正の整数のセットで表されます。 たとえば、文字列「1.2.840.10040.4.3」では、DSA署名アルゴリズムを持つSHA-1が識別されます(PKIXパートIを参照)。該当するASN.1定義については、
getSigAlgName
を参照してください。- 戻り値:
- 署名アルゴリズムのOID文字列。
-
getSigAlgParams
public abstract byte[] getSigAlgParams()
非推奨。この証明書の署名アルゴリズムから、DERでエンコードされた署名アルゴリズム・パラメータを取得します。 ほとんどの場合、署名アルゴリズム・パラメータはnullで、通常は証明書の公開キーとともに提供されます。該当するASN.1定義については、
getSigAlgName
を参照してください。- 戻り値:
- DERでエンコードされた署名アルゴリズム・パラメータ。パラメータが存在しない場合はnull。
-
-