要約
OpenSSL の X509 証明書、CRL(証明書失効リスト)、 CSR(証明書署名要求)、証明書ストアなどに関するモジュールです。
検証時エラー定数
以下の定数は OpenSSL::X509::Store#error, OpenSSL::X509::StoreContext#error, OpenSSL::SSL::SSLSocket#verify_result の返り値として用いられます。 V_OK はエラーなしを意味しています。
- OpenSSL::X509::V_OK
 - OpenSSL::X509::V_ERR_AKID_SKID_MISMATCH
 - OpenSSL::X509::V_ERR_APPLICATION_VERIFICATION
 - OpenSSL::X509::V_ERR_CERT_CHAIN_TOO_LONG
 - OpenSSL::X509::V_ERR_CERT_HAS_EXPIRED
 - OpenSSL::X509::V_ERR_CERT_NOT_YET_VALID
 - OpenSSL::X509::V_ERR_CERT_REJECTED
 - OpenSSL::X509::V_ERR_CERT_REVOKED
 - OpenSSL::X509::V_ERR_CERT_SIGNATURE_FAILURE
 - OpenSSL::X509::V_ERR_CERT_UNTRUSTED
 - OpenSSL::X509::V_ERR_CRL_HAS_EXPIRED
 - OpenSSL::X509::V_ERR_CRL_NOT_YET_VALID
 - OpenSSL::X509::V_ERR_CRL_SIGNATURE_FAILURE
 - OpenSSL::X509::V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT
 - OpenSSL::X509::V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD
 - OpenSSL::X509::V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD
 - OpenSSL::X509::V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD
 - OpenSSL::X509::V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD
 - OpenSSL::X509::V_ERR_INVALID_CA
 - OpenSSL::X509::V_ERR_INVALID_PURPOSE
 - OpenSSL::X509::V_ERR_KEYUSAGE_NO_CERTSIGN
 - OpenSSL::X509::V_ERR_OUT_OF_MEM
 - OpenSSL::X509::V_ERR_PATH_LENGTH_EXCEEDED
 - OpenSSL::X509::V_ERR_SELF_SIGNED_CERT_IN_CHAIN
 - OpenSSL::X509::V_ERR_SUBJECT_ISSUER_MISMATCH
 - OpenSSL::X509::V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY
 - OpenSSL::X509::V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE
 - OpenSSL::X509::V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE
 - OpenSSL::X509::V_ERR_UNABLE_TO_GET_CRL
 - OpenSSL::X509::V_ERR_UNABLE_TO_GET_ISSUER_CERT
 - OpenSSL::X509::V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY
 - OpenSSL::X509::V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE
 
目次
- 定数
 - 
- 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][edit]- 
証明書や設定ファイルなど OpenSSL 関連のデータを置いてあるディレクトリの名前を返します。
 DEFAULT_CERT_DIR -> String[permalink][rdoc][edit]- 
デフォルトの CA 証明書ディレクトリ名です。
OpenSSL::X509::Store#set_default_paths で読み込まれます。
OpenSSL::X509::DEFAULT_CERT_DIR_ENV で得られる環境変数よって上書き可能です。
証明書ディレクトリに含まれる証明書のファイル名はハッシュ名でなければなりません。
 DEFAULT_CERT_DIR_ENV -> String[permalink][rdoc][edit]- 
CA 証明書ディレクトリ名を指定する環境変数名です。
通常、"SSL_CERT_DIR" という文字列です。この環境変数を設定しておくことによって OpenSSL::X509::Store#set_default_paths で読み込まれる証明書ディレクトリを変更できます。
証明書ディレクトリに含まれる証明書のファイル名はハッシュ名でなければなりません。
[SEE_ALSO] OpenSSL::X509::DEFAULT_CERT_DIR
 DEFAULT_CERT_FILE -> String[permalink][rdoc][edit]- 
デフォルトの CA 証明書ファイル名です。
OpenSSL::X509::Store#set_default_paths で読み込まれます。
OpenSSL::X509::DEFAULT_CERT_FILE_ENV で得られる環境変数よって上書き可能です。
 DEFAULT_CERT_FILE_ENV -> String[permalink][rdoc][edit]- 
CA 証明書ファイル名を指定する環境変数名です。
通常、"SSL_CERT_FILE" という文字列です。この環境変数を設定しておくことによって OpenSSL::X509::Store#set_default_paths で読み込まれる証明書ファイル名を変更できます。
[SEE_ALSO] OpenSSL::X509::DEFAULT_CERT_FILE
 DEFAULT_PRIVATE_DIR -> String[permalink][rdoc][edit]- 
デフォルトの秘密鍵ディレクトリ名です。
 PURPOSE_ANY -> Integer[permalink][rdoc][edit]- 
証明書の目的を確認しないことを意味します。
OpenSSL::X509::Store#purpose= や OpenSSL::X509::StoreContext#purpose= で設定します。
 PURPOSE_CRL_SIGN -> Integer[permalink][rdoc][edit]- 
証明書が CRL の署名をするのに利用可能かをチェックすることを意味します。
OpenSSL::X509::Store#purpose= や OpenSSL::X509::StoreContext#purpose= で設定し、 OpenSSL::X509::Store#verify や OpenSSL::X509::StoreContext#verify でこのことを確認します。
 PURPOSE_NS_SSL_SERVER -> Integer[permalink][rdoc][edit]- 
証明書が Netscape SSL server の証明書として使えるかチェックすることを意味します。
OpenSSL::X509::Store#purpose= や OpenSSL::X509::StoreContext#purpose= で設定し、 OpenSSL::X509::Store#verify や OpenSSL::X509::StoreContext#verify でこのことを確認します。
 PURPOSE_OCSP_HELPER -> Integer[permalink][rdoc][edit]- 
OCSP関連でOpenSSLの内部的に利用されます。
OpenSSL::X509::Store#purpose= や OpenSSL::X509::StoreContext#purpose= で設定し、 OpenSSL::X509::Store#verify や OpenSSL::X509::StoreContext#verify で確認します。
 PURPOSE_SMIME_ENCRYPT -> Integer[permalink][rdoc][edit]- 
証明書が S/MIME の暗号化をするのに使えるかチェックすることを意味します。
OpenSSL::X509::Store#purpose= や OpenSSL::X509::StoreContext#purpose= で設定し、 OpenSSL::X509::Store#verify や OpenSSL::X509::StoreContext#verify でこのことを確認します。
 PURPOSE_SMIME_SIGN -> Integer[permalink][rdoc][edit]- 
証明書が S/MIME の署名をするのに使えるかチェックすることを意味します。
OpenSSL::X509::Store#purpose= や OpenSSL::X509::StoreContext#purpose= で設定し、 OpenSSL::X509::Store#verify や OpenSSL::X509::StoreContext#verify でこのことを確認します。
 PURPOSE_SSL_CLIENT -> Integer[permalink][rdoc][edit]- 
証明書が SSL のクライアントサイドの証明書として使えるかチェックすることを意味します。
OpenSSL::X509::Store#purpose= や OpenSSL::X509::StoreContext#purpose= で設定し、 OpenSSL::X509::Store#verify や OpenSSL::X509::StoreContext#verify でこのことを確認します。
 PURPOSE_SSL_SERVER -> Integer[permalink][rdoc][edit]- 
証明書が SSL のサーバサイドの証明書として使えるか。チェックすることを意味します。
OpenSSL::X509::Store#purpose= や OpenSSL::X509::StoreContext#purpose= で設定し、 OpenSSL::X509::Store#verify や OpenSSL::X509::StoreContext#verify でこのことを確認します。
 TRUST_COMPAT -> Integer[permalink][rdoc][edit]- 
ルート CA 証明書が自分自身の秘密鍵で署名されています。
 TRUST_EMAIL -> Integer[permalink][rdoc][edit]- 
[TODO]
 TRUST_OBJECT_SIGN -> Integer[permalink][rdoc][edit]- 
[TODO]
 TRUST_OCSP_REQUEST -> Integer[permalink][rdoc][edit]- 
[TODO]
 TRUST_OCSP_SIGN -> Integer[permalink][rdoc][edit]- 
[TODO]
 TRUST_SSL_CLIENT -> Integer[permalink][rdoc][edit]- 
[TODO]
 TRUST_SSL_SERVER -> Integer[permalink][rdoc][edit]- 
[TODO]
 V_ERR_AKID_ISSUER_SERIAL_MISMATCH -> Integer[permalink][rdoc][edit]- 
証明書の拡張領域の Authority Key Identifier のシリアルと issuer の証明書のシリアルが一致しないことを意味します。
 V_ERR_AKID_SKID_MISMATCH -> Integer[permalink][rdoc][edit]- 
証明書の authorityKeyIdentifier 拡張領域の内容が issuer(発行者)の証明書の subjectKeyIdentifier の内容と食い違っていることを意味します。
 V_ERR_APPLICATION_VERIFICATION -> Integer[permalink][rdoc][edit]- 
アプリケーションが利用するエラーコードです。
OpenSSL のライブラリでは使われないので、アプリケーションプログラマが自由に利用することが可能です。
OpenSSL::X509::Store#error や OpenSSL::X509::StoreContext#error のエラーコードとして使われます。
[SEE_ALSO] OpenSSL::X509::Store#verify_callback=, OpenSSL::X509::StoreContext#error=
 V_ERR_CERT_CHAIN_TOO_LONG -> Integer[permalink][rdoc][edit]- 
証明書チェインが長すぎることを意味します。
OpenSSL::X509::Store#error や OpenSSL::X509::StoreContext#error のエラーコードとして使われます。
[SEE_ALSO] OpenSSL::SSL::SSLContext#verify_depth=
 V_ERR_CERT_HAS_EXPIRED -> Integer[permalink][rdoc][edit]- 
証明書が期限切れであることを意味します。
期限は証明書チェイン全体に対し確認されます。
OpenSSL::X509::Store#error や OpenSSL::X509::StoreContext#error のエラーコードとして使われます。
[SEE_ALSO] OpenSSL::X509::Certificate#not_after=, OpenSSL::X509::Store#time=
 V_ERR_CERT_NOT_YET_VALID -> Integer[permalink][rdoc][edit]- 
証明書の開始時刻以前であることを意味します。
開始時刻は証明書チェイン全体に対し確認されます。
OpenSSL::X509::Store#error や OpenSSL::X509::StoreContext#error のエラーコードとして使われます。
[SEE_ALSO] OpenSSL::X509::Certificate#not_before=, OpenSSL::X509::Store#time=
 V_ERR_CERT_REJECTED -> Integer[permalink][rdoc][edit]- 
ルート CA 証明書に指定した目標に使ってはならないとされていることを意味します。
 V_ERR_CERT_REVOKED -> Integer[permalink][rdoc][edit]- 
証明書が CRL によって失効されられていることを意味します。
OpenSSL::X509::Store#error や OpenSSL::X509::StoreContext#error のエラーコードとして使われます。
[SEE_ALSO] OpenSSL::X509::CRL
 V_ERR_CERT_SIGNATURE_FAILURE -> Integer[permalink][rdoc][edit]- 
証明書になされた署名の検証に失敗したことを意味します。
OpenSSL::X509::Store#error や OpenSSL::X509::StoreContext#error のエラーコードとして使われます。
 V_ERR_CERT_UNTRUSTED -> Integer[permalink][rdoc][edit]- 
ルート 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][edit]- 
CRL が期限切れであることを意味します。
OpenSSL::X509::Store#error や OpenSSL::X509::StoreContext#error のエラーコードとして使われます。
 V_ERR_CRL_NOT_YET_VALID -> Integer[permalink][rdoc][edit]- 
CRL の開始時刻がまだ来ていないことを意味します。
OpenSSL::X509::Store#error や OpenSSL::X509::StoreContext#error のエラーコードとして使われます。
 V_ERR_CRL_SIGNATURE_FAILURE -> Integer[permalink][rdoc][edit]- 
CRL になされた署名の検証に失敗したことを意味します。
OpenSSL::X509::Store#error や OpenSSL::X509::StoreContext#error のエラーコードとして使われます。
 V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT -> Integer[permalink][rdoc][edit]- 
検証している証明書がルート CA (自己署名証明書)であり、それが信頼されている証明書でないことを意味します。
OpenSSL::X509::Store#error や OpenSSL::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][edit]- 
証明書の notAfter フィールドの値が不正であることを意味します。
これは notAfter フィールド(証明書の期限を表すデータ) が不正なフォーマットであることを意味し (そもそも時刻を表現していない場合や、1月32日であるなど)、証明書が期限切れであることを意味しません。
OpenSSL::X509::Store#error や OpenSSL::X509::StoreContext#error のエラーコードとして使われます。
 V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD -> Integer[permalink][rdoc][edit]- 
証明書の notBefore フィールドの値が不正であることを意味します。
これは notBefore フィールド(証明書の開始時刻を表すデータ) が不正なフォーマットであることを意味し (そもそも時刻を表現していない場合や、1月32日であるなど)、証明書の開始時刻にまだ到達していないことを意味しません。
OpenSSL::X509::Store#error や OpenSSL::X509::StoreContext#error のエラーコードとして使われます。
 V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD -> Integer[permalink][rdoc][edit]- 
CRL の lastUpdate フィールドの値が不正であることを意味します。
OpenSSL::X509::Store#error や OpenSSL::X509::StoreContext#error のエラーコードとして使われます。
 V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD -> Integer[permalink][rdoc][edit]- 
CRL の nextUpdate フィールドの値が不正であることを意味します。
OpenSSL::X509::Store#error や OpenSSL::X509::StoreContext#error のエラーコードとして使われます。
 V_ERR_INVALID_CA -> Integer[permalink][rdoc][edit]- 
CA 証明書が不正であることを意味します。
証明書が実は CA 用ではない場合は証明書の拡張がおかしい場合にこのエラーが発生します。
OpenSSL::X509::Store#error や OpenSSL::X509::StoreContext#error のエラーコードとして使われます。
 V_ERR_INVALID_PURPOSE -> Integer[permalink][rdoc][edit]- 
証明書が指定した目的で使えないことを意味します。
[SEE_ALSO] OpenSSL::X509::Store#purpose=
 V_ERR_KEYUSAGE_NO_CERTSIGN -> Integer[permalink][rdoc][edit]- 
署名できない証明書で署名しようしとたことを意味します。
OpenSSL::X509::Store#error や OpenSSL::X509::StoreContext#error のエラーコードとして使われます。
 V_ERR_OUT_OF_MEM -> Integer[permalink][rdoc][edit]- 
メモリが不足したことを意味します。
OpenSSL::X509::Store#error や OpenSSL::X509::StoreContext#error のエラーコードとして使われます。
 V_ERR_PATH_LENGTH_EXCEEDED -> Integer[permalink][rdoc][edit]- 
CA 証明書の basicConstraints 拡張領域の pathlen を越えている場合に発生します。
 V_ERR_SELF_SIGNED_CERT_IN_CHAIN -> Integer[permalink][rdoc][edit]- 
証明書チェインのルート CA (自己署名証明書)が信頼されている証明書でないことを意味します。
OpenSSL::X509::Store#error や OpenSSL::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][edit]- 
証明書の issuer(発行者)名と上位の証明書のsubject(所有者)名が異なっていることを意味します。
 V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY -> Integer[permalink][rdoc][edit]- 
証明書の SubjectPublicKeyInfo フィールドが読めなかったことを意味します。
 V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE -> Integer[permalink][rdoc][edit]- 
証明書の署名が復号できないことを意味します。
OpenSSL::X509::Store#error や OpenSSL::X509::StoreContext#error のエラーコードとして使われます。
 V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE -> Integer[permalink][rdoc][edit]- 
CRL の署名が復号できないことを意味します。
OpenSSL::X509::Store#error や OpenSSL::X509::StoreContext#error のエラーコードとして使われます。
 V_ERR_UNABLE_TO_GET_CRL -> Integer[permalink][rdoc][edit]- 
CRL が見付からないことを意味します。
OpenSSL::X509::Store#flags= で CRL をチェックすることを指定したにもかかわらず、適切な CRL を OpenSSL::X509::Store#add_crl で追加しなかった場合にこのエラーが生じます。
OpenSSL::X509::Store#error や OpenSSL::X509::StoreContext#error のエラーコードとして使われます。
 V_ERR_UNABLE_TO_GET_ISSUER_CERT -> Integer[permalink][rdoc][edit]- 
issuer(発行者)の証明書が信頼している証明書群の中から見付からないような証明書を、信頼している証明書群に含んでいることを意味します。
つまり、信頼している証明書群に issuer を親とする木構造を考えた場合、その root(根) となるノードが自己署名されていないことを意味します。
これは、通常信頼している証明書のリストが不完全であることを意味します。
OpenSSL::X509::Store#error や OpenSSL::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][edit]- 
証明書チェイン末尾の証明書の issuer(発行者)の証明書が信頼している証明書群の中から見付からないことを意味します。
OpenSSL::X509::Store#error や OpenSSL::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][edit]- 
証明書チェインにある証明書がただ一つでその証明書が自己署名証明書でないことを意味します。
 V_FLAG_CRL_CHECK -> Integer[permalink][rdoc][edit]- 
証明書の検証時に 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][edit]- 
証明書チェーンすべてに CRL をチェックすることを意味します。
このフラグは OpenSSL::X509::V_FLAG_CRL_CHECK と共に指定する場合にのみ意味を持ちます。
OpenSSL::X509::Store#flags= で使います。
 V_OK -> Integer[permalink][rdoc][edit]- 
エラーが発生していないことを意味します。
OpenSSL::X509::Store#error や OpenSSL::X509::StoreContext#error のエラーコードとして使われます。