Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > opensslライブラリ > OpenSSL::X509モジュール

module OpenSSL::X509

クラスの継承リスト: OpenSSL::X509

要約

OpenSSL の X509 証明書、CRL(証明書失効リスト)、 CSR(証明書署名要求)、証明書ストアなどに関するモジュールです。

検証時エラー定数

以下の定数は OpenSSL::X509::Store#error, OpenSSL::X509::StoreContext#error, OpenSSL::SSL::SSLSocket#verify_result の返り値として用いられます。 V_OK はエラーなしを意味しています。

目次

定数
DEFAULT_CERT_AREA DEFAULT_CERT_DIR DEFAULT_CERT_DIR_ENV DEFAULT_CERT_FILE DEFAULT_CERT_FILE_ENV DEFAULT_PRIVATE_DIR PURPOSE_ANY PURPOSE_CRL_SIGN PURPOSE_NS_SSL_SERVER PURPOSE_OCSP_HELPER PURPOSE_SMIME_ENCRYPT PURPOSE_SMIME_SIGN PURPOSE_SSL_CLIENT PURPOSE_SSL_SERVER TRUST_COMPAT TRUST_EMAIL TRUST_OBJECT_SIGN TRUST_OCSP_REQUEST TRUST_OCSP_SIGN TRUST_SSL_CLIENT TRUST_SSL_SERVER V_ERR_AKID_ISSUER_SERIAL_MISMATCH V_ERR_AKID_SKID_MISMATCH V_ERR_APPLICATION_VERIFICATION V_ERR_CERT_CHAIN_TOO_LONG V_ERR_CERT_HAS_EXPIRED V_ERR_CERT_NOT_YET_VALID V_ERR_CERT_REJECTED V_ERR_CERT_REVOKED V_ERR_CERT_SIGNATURE_FAILURE V_ERR_CERT_UNTRUSTED V_ERR_CRL_HAS_EXPIRED V_ERR_CRL_NOT_YET_VALID V_ERR_CRL_SIGNATURE_FAILURE V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD V_ERR_INVALID_CA V_ERR_INVALID_PURPOSE V_ERR_KEYUSAGE_NO_CERTSIGN V_ERR_OUT_OF_MEM V_ERR_PATH_LENGTH_EXCEEDED V_ERR_SELF_SIGNED_CERT_IN_CHAIN V_ERR_SUBJECT_ISSUER_MISMATCH V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE V_ERR_UNABLE_TO_GET_CRL V_ERR_UNABLE_TO_GET_ISSUER_CERT V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE V_FLAG_CRL_CHECK V_FLAG_CRL_CHECK_ALL V_OK

定数

DEFAULT_CERT_AREA -> String[permalink][rdoc]

証明書や設定ファイルなど OpenSSL 関連のデータを 置いてあるディレクトリの名前を返します。

DEFAULT_CERT_DIR -> String[permalink][rdoc]

デフォルトの CA 証明書ディレクトリ名です。

OpenSSL::X509::Store#set_default_paths で読み込まれます。

OpenSSL::X509::DEFAULT_CERT_DIR_ENV で得られる環境変数よって 上書き可能です。

証明書ディレクトリに含まれる証明書のファイル名は ハッシュ名でなければなりません。

DEFAULT_CERT_DIR_ENV -> String[permalink][rdoc]

CA 証明書ディレクトリ名を指定する環境変数名です。

通常、"SSL_CERT_DIR" という文字列です。 この環境変数を設定しておくことによって OpenSSL::X509::Store#set_default_paths で読み込まれる 証明書ディレクトリを変更できます。

証明書ディレクトリに含まれる証明書のファイル名は ハッシュ名でなければなりません。

[SEE_ALSO] OpenSSL::X509::DEFAULT_CERT_DIR

DEFAULT_CERT_FILE -> String[permalink][rdoc]

デフォルトの CA 証明書ファイル名です。

OpenSSL::X509::Store#set_default_paths で読み込まれます。

OpenSSL::X509::DEFAULT_CERT_FILE_ENV で得られる環境変数よって 上書き可能です。

DEFAULT_CERT_FILE_ENV -> String[permalink][rdoc]

CA 証明書ファイル名を指定する環境変数名です。

通常、"SSL_CERT_FILE" という文字列です。 この環境変数を設定しておくことによって OpenSSL::X509::Store#set_default_paths で読み込まれる 証明書ファイル名を変更できます。

[SEE_ALSO] OpenSSL::X509::DEFAULT_CERT_FILE

DEFAULT_PRIVATE_DIR -> String[permalink][rdoc]

デフォルトの秘密鍵ディレクトリ名です。

PURPOSE_ANY -> Integer[permalink][rdoc]

証明書の目的を確認しないことを意味します。

OpenSSL::X509::Store#purpose=OpenSSL::X509::StoreContext#purpose= で設定します。

PURPOSE_CRL_SIGN -> Integer[permalink][rdoc]

証明書が CRL の署名をするのに利用可能かを チェックすることを意味します。

OpenSSL::X509::Store#purpose=OpenSSL::X509::StoreContext#purpose= で設定し、 OpenSSL::X509::Store#verifyOpenSSL::X509::StoreContext#verify で このことを確認します。

PURPOSE_NS_SSL_SERVER -> Integer[permalink][rdoc]

証明書が Netscape SSL server の証明書として使えるか チェックすることを意味します。

OpenSSL::X509::Store#purpose=OpenSSL::X509::StoreContext#purpose= で設定し、 OpenSSL::X509::Store#verifyOpenSSL::X509::StoreContext#verify で このことを確認します。

PURPOSE_OCSP_HELPER -> Integer[permalink][rdoc]

OCSP関連でOpenSSLの内部的に利用されます。

OpenSSL::X509::Store#purpose=OpenSSL::X509::StoreContext#purpose= で設定し、 OpenSSL::X509::Store#verifyOpenSSL::X509::StoreContext#verify で 確認します。

PURPOSE_SMIME_ENCRYPT -> Integer[permalink][rdoc]

証明書が S/MIME の暗号化をするのに使えるか チェックすることを意味します。

OpenSSL::X509::Store#purpose=OpenSSL::X509::StoreContext#purpose= で設定し、 OpenSSL::X509::Store#verifyOpenSSL::X509::StoreContext#verify で このことを確認します。

PURPOSE_SMIME_SIGN -> Integer[permalink][rdoc]

証明書が S/MIME の署名をするのに使えるか チェックすることを意味します。

OpenSSL::X509::Store#purpose=OpenSSL::X509::StoreContext#purpose= で設定し、 OpenSSL::X509::Store#verifyOpenSSL::X509::StoreContext#verify で このことを確認します。

PURPOSE_SSL_CLIENT -> Integer[permalink][rdoc]

証明書が SSL のクライアントサイドの証明書として使えるか チェックすることを意味します。

OpenSSL::X509::Store#purpose=OpenSSL::X509::StoreContext#purpose= で設定し、 OpenSSL::X509::Store#verifyOpenSSL::X509::StoreContext#verify で このことを確認します。

PURPOSE_SSL_SERVER -> Integer[permalink][rdoc]

証明書が SSL のサーバサイドの証明書として使えるか。 チェックすることを意味します。

OpenSSL::X509::Store#purpose=OpenSSL::X509::StoreContext#purpose= で設定し、 OpenSSL::X509::Store#verifyOpenSSL::X509::StoreContext#verify で このことを確認します。

TRUST_COMPAT -> Integer[permalink][rdoc]

ルート CA 証明書が自分自身の秘密鍵で署名されています。

TRUST_EMAIL -> Integer[permalink][rdoc]

[TODO]

TRUST_OBJECT_SIGN -> Integer[permalink][rdoc]

[TODO]

TRUST_OCSP_REQUEST -> Integer[permalink][rdoc]

[TODO]

TRUST_OCSP_SIGN -> Integer[permalink][rdoc]

[TODO]

TRUST_SSL_CLIENT -> Integer[permalink][rdoc]

[TODO]

TRUST_SSL_SERVER -> Integer[permalink][rdoc]

[TODO]

V_ERR_AKID_ISSUER_SERIAL_MISMATCH -> Integer[permalink][rdoc]

証明書の拡張領域の Authority Key Identifier のシリアルと issuer の証明書のシリアルが一致しないことを意味します。

V_ERR_AKID_SKID_MISMATCH -> Integer[permalink][rdoc]

証明書の authorityKeyIdentifier 拡張領域の内容が issuer(発行者)の証明書の subjectKeyIdentifier の内容と 食い違っていることを意味します。

V_ERR_APPLICATION_VERIFICATION -> Integer[permalink][rdoc]

アプリケーションが利用するエラーコードです。

OpenSSL のライブラリでは使われないので、 アプリケーションプログラマが自由に利用することが可能です。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

[SEE_ALSO] OpenSSL::X509::Store#verify_callback=, OpenSSL::X509::StoreContext#error=

V_ERR_CERT_CHAIN_TOO_LONG -> Integer[permalink][rdoc]

証明書チェインが長すぎることを意味します。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

[SEE_ALSO] OpenSSL::SSL::SSLContext#verify_depth=

V_ERR_CERT_HAS_EXPIRED -> Integer[permalink][rdoc]

証明書が期限切れであることを意味します。

期限は証明書チェイン全体に対し確認されます。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

[SEE_ALSO] OpenSSL::X509::Certificate#not_after=, OpenSSL::X509::Store#time=

V_ERR_CERT_NOT_YET_VALID -> Integer[permalink][rdoc]

証明書の開始時刻以前であることを意味します。

開始時刻は証明書チェイン全体に対し確認されます。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

[SEE_ALSO] OpenSSL::X509::Certificate#not_before=, OpenSSL::X509::Store#time=

V_ERR_CERT_REJECTED -> Integer[permalink][rdoc]

ルート CA 証明書に指定した目標に使ってはならないと されていることを意味します。

V_ERR_CERT_REVOKED -> Integer[permalink][rdoc]

証明書が CRL によって失効されられていることを意味します。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

[SEE_ALSO] OpenSSL::X509::CRL

V_ERR_CERT_SIGNATURE_FAILURE -> Integer[permalink][rdoc]

証明書になされた署名の検証に失敗したことを意味します。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

V_ERR_CERT_UNTRUSTED -> Integer[permalink][rdoc]

ルート CA 証明書が指定した目的では信頼できないことを意味します。

[SEE_ALSO] OpenSSL::X509::Store#trust=, OpenSSL::X509::StoreContext#trust=

[SEE_ALSO] OpenSSL::X509::Store#trust=

V_ERR_CRL_HAS_EXPIRED -> Integer[permalink][rdoc]

CRL が期限切れであることを意味します。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

V_ERR_CRL_NOT_YET_VALID -> Integer[permalink][rdoc]

CRL の開始時刻がまだ来ていないことを意味します。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

V_ERR_CRL_SIGNATURE_FAILURE -> Integer[permalink][rdoc]

CRL になされた署名の検証に失敗したことを意味します。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT -> Integer[permalink][rdoc]

検証している証明書がルート CA (自己署名証明書)であり、 それが信頼されている証明書でないことを意味します。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

[SEE_ALSO] OpenSSL::X509::Store#add_file, OpenSSL::X509::Store#add_path, OpenSSL::X509::Store#add_cert, OpenSSL::X509::Store#set_default_paths

V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD -> Integer[permalink][rdoc]

証明書の notAfter フィールドの値が不正である ことを意味します。

これは notAfter フィールド(証明書の期限を表すデータ) が不正なフォーマットであることを意味し (そもそも時刻を表現していない場合や、1月32日であるなど)、 証明書が期限切れであることを意味しません。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD -> Integer[permalink][rdoc]

証明書の notBefore フィールドの値が不正である ことを意味します。

これは notBefore フィールド(証明書の開始時刻を表すデータ) が不正なフォーマットであることを意味し (そもそも時刻を表現していない場合や、1月32日であるなど)、 証明書の開始時刻にまだ到達していないことを意味しません。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD -> Integer[permalink][rdoc]

CRL の lastUpdate フィールドの値が不正である ことを意味します。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD -> Integer[permalink][rdoc]

CRL の nextUpdate フィールドの値が不正である ことを意味します。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

V_ERR_INVALID_CA -> Integer[permalink][rdoc]

CA 証明書が不正であることを意味します。

証明書が実は CA 用ではない場合は証明書の拡張がおかしい場合に このエラーが発生します。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

V_ERR_INVALID_PURPOSE -> Integer[permalink][rdoc]

証明書が指定した目的で使えないことを意味します。

[SEE_ALSO] OpenSSL::X509::Store#purpose=

V_ERR_KEYUSAGE_NO_CERTSIGN -> Integer[permalink][rdoc]

署名できない証明書で署名しようしとたことを意味します。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

V_ERR_OUT_OF_MEM -> Integer[permalink][rdoc]

メモリが不足したことを意味します。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

V_ERR_PATH_LENGTH_EXCEEDED -> Integer[permalink][rdoc]

CA 証明書の basicConstraints 拡張領域の pathlen を 越えている場合に発生します。

V_ERR_SELF_SIGNED_CERT_IN_CHAIN -> Integer[permalink][rdoc]

証明書チェインのルート CA (自己署名証明書)が 信頼されている証明書でないことを意味します。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

[SEE_ALSO] OpenSSL::X509::Store#add_file, OpenSSL::X509::Store#add_path, OpenSSL::X509::Store#add_cert, OpenSSL::X509::Store#set_default_paths

V_ERR_SUBJECT_ISSUER_MISMATCH -> Integer[permalink][rdoc]

証明書の issuer(発行者)名と上位の証明書のsubject(所有者)名が 異なっていることを意味します。

V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY -> Integer[permalink][rdoc]

証明書の SubjectPublicKeyInfo フィールドが読めなかった ことを意味します。

V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE -> Integer[permalink][rdoc]

証明書の署名が復号できないことを意味します。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE -> Integer[permalink][rdoc]

CRL の署名が復号できないことを意味します。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

V_ERR_UNABLE_TO_GET_CRL -> Integer[permalink][rdoc]

CRL が見付からないことを意味します。

OpenSSL::X509::Store#flags= で CRL をチェックすることを 指定したにもかかわらず、適切な CRL を OpenSSL::X509::Store#add_crl で追加しなかった場合に このエラーが生じます。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

V_ERR_UNABLE_TO_GET_ISSUER_CERT -> Integer[permalink][rdoc]

issuer(発行者)の証明書が 信頼している証明書群の中から見付からない ような証明書を、信頼している証明書群に含んでいることを意味します。

つまり、信頼している証明書群に issuer を親とする木構造を考えた場合、 その root(根) となるノードが自己署名されていないことを意味します。

これは、通常信頼している証明書のリストが不完全であることを意味します。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

[SEE_ALSO] OpenSSL::X509::Store#add_file, OpenSSL::X509::Store#add_path, OpenSSL::X509::Store#add_cert, OpenSSL::X509::Store#set_default_paths

V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY -> Integer[permalink][rdoc]

証明書チェイン末尾の証明書の issuer(発行者)の証明書が 信頼している証明書群の中から見付からないことを意味します。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。

[SEE_ALSO] OpenSSL::X509::Store#add_file, OpenSSL::X509::Store#add_path, OpenSSL::X509::Store#add_cert, OpenSSL::X509::Store#set_default_paths

V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE -> Integer[permalink][rdoc]

証明書チェインにある証明書がただ一つでその証明書が 自己署名証明書でないことを意味します。

V_FLAG_CRL_CHECK -> Integer[permalink][rdoc]

証明書の検証時に CRL をチェックすることを意味します。

このフラグのみを指定すると検証する証明書のみ CRL をチェックし、 CA の証明書チェーンには CRL のチェックがなされません。

証明チェーン全体をチェックしたい場合は V_FLAG_CRL_CHECK と OpenSSL::X509::V_FLAG_CRL_CHECK_ALL の両方を指定する 必要があります。

OpenSSL::X509::Store#flags= で使います。

V_FLAG_CRL_CHECK_ALL -> Integer[permalink][rdoc]

証明書チェーンすべてに CRL をチェックすることを意味します。

このフラグは OpenSSL::X509::V_FLAG_CRL_CHECK と共に 指定する場合にのみ意味を持ちます。

OpenSSL::X509::Store#flags= で使います。

V_OK -> Integer[permalink][rdoc]

エラーが発生していないことを意味します。

OpenSSL::X509::Store#errorOpenSSL::X509::StoreContext#error のエラーコードとして 使われます。