要約
OCSP の Basic OCSP Response を表すクラスです。
レスポンスの実質的な内容(証明書が失効しているかどうか) はこのクラスのオブジェクトが保持します。
OCSP レスポンダからのレスポンス自体は OpenSSL::OCSP::Response のオブジェクトが表現していて、このオブジェクトの OpenSSL::OCSP::Response#basic によって BasicResponse のオブジェクトを得ます。
目次
- 特異メソッド
- インスタンスメソッド
特異メソッド
new -> OpenSSL::OCSP::BasicResponse
[permalink][rdoc][edit]-
空の BasicResponse オブジェクトを生成します。
[SEE_ALSO] OpenSSL::OCSP::Response.create
インスタンスメソッド
add_nonce(val=nil) -> self
[permalink][rdoc][edit]-
BasicResponse に nonce を追加します。
引数を省略すると、ランダムな nonce を生成し利用します。
通常はこのメソッドを使わず OpenSSL::OCSP::BasicResponse#copy_nonce を用います。
- [PARAM] val:
- 追加する nonce の値(文字列)
add_status(cid, status, reason, revtime, thisupd, nextupd, exts) -> self
[permalink][rdoc][edit]-
証明書の状態の問い合わせの結果をオブジェクトに追加します。
詳しくは OpenSSL::OCSP::BasicResponse#status を見てください。
- [PARAM] cid:
- 問い合わせの(OpenSSL::OCSP::CertificateId オブジェクト)
- [PARAM] status:
- ステータスコード(整数)
- [PARAM] reason:
- 失効理由コード(整数)
- [PARAM] revtime:
- 失効時刻(Time オブジェクトもしくは nil)
- [PARAM] thisupd:
- 最終更新時刻(Time オブジェクト)
- [PARAM] nextupd:
- 次回更新時刻(Time オブジェクト)
- [PARAM] exts:
- 拡張領域(OpenSSL::X509::Extension オブジェクトの配列)
copy_nonce(request) -> Integer
[permalink][rdoc][edit]-
request から nonce の値をコピーします。
- [PARAM] request:
- コピー元のnonceを保持している Request (OpenSSL::OCSP::Request オブジェクト)
sign(signer_cert, signer_key, certs = [], flags=0) -> self
[permalink][rdoc][edit]-
Response に署名します。
OCSP レスポンダ(もしくは CA)はレスポンスに署名をすることで、レスポンスの内容を保証します。
flags には以下の値の OR を渡すことができます。
certs に証明書の配列を渡すことで、この署名を検証するために必要となる別の証明書を付加することができます。
- [PARAM] signer_cert:
- 署名者の証明書(OpenSSL::X509::Certificate オブジェクト)
- [PARAM] signer_key:
- 証明に用いる秘密鍵(OpenSSL::PKey::PKey オブジェクト)
- [PARAM] certs:
- 添付する証明書(OpenSSL::X509::Certificate オブジェクトの配列)
- [PARAM] flags:
- フラグ(整数)
status -> [[OpenSSL::OCSP::CertificateId, Integer, Integer, Time|nil, Time, Time|nil, [OpenSSL::X509::Extension]]]
[permalink][rdoc][edit]-
証明書の状態の問い合わせの結果を返します。
この返り値には複数の問い合わせ結果が含まれています。個々の結果は以下の内容の配列です。
[ 問い合わせの CertificateId オブジェクト, ステータスコード, 失効理由コード, 失効時刻, 最終更新時刻, 次回更新時刻, 拡張領域 ]
ステータスコードはいかのいずれかの値を取ります
- OpenSSL::OCSP::V_CERTSTATUS_GOOD 正常
- OpenSSL::OCSP::V_CERTSTATUS_REVOKED 失効
- OpenSSL::OCSP::V_CERTSTATUS_UNKNOWN 不明
失効理由コードは以下のいずれかを返します。
- OpenSSL::OCSP::REVOKED_STATUS_NOSTATUS
- OpenSSL::OCSP::REVOKED_STATUS_UNSPECIFIED
- OpenSSL::OCSP::REVOKED_STATUS_KEYCOMPROMISE
- OpenSSL::OCSP::REVOKED_STATUS_CACOMPROMISE
- OpenSSL::OCSP::REVOKED_STATUS_AFFILIATIONCHANGED
- OpenSSL::OCSP::REVOKED_STATUS_SUPERSEDED
- OpenSSL::OCSP::REVOKED_STATUS_CESSATIONOFOPERATION
- OpenSSL::OCSP::REVOKED_STATUS_CERTIFICATEHOLD
- OpenSSL::OCSP::REVOKED_STATUS_REMOVEFROMCRL
失効時刻は証明書が失効した時刻を表します。失効していない場合は nil を返します。
最終更新時刻は失効情報が更新された時刻を表します。この時刻が現在時刻より先である場合には、この Response の内容は信用できません。
次回更新時刻は、失効情報の更新予定時刻です。この時刻が現在時刻より後である場合には、この Response の内容は信用できません。次回更新時刻が指定されていない場合には nil を返します。
拡張領域には、OpenSSL::X509::Extension の配列が渡されます。
結果をどのように解釈すべきか、より詳しくは [RFC2560] や X.509 を見てください。
例:
res.basic.status # => [ # [#<OpenSSL::OCSP::CertificateId:0x00000000e3c290>, # certificate ID # 0, # status code # 0, # reason code # nil, # revoked time # 2011-06-29 05:24:43 UTC, # update time # 2011-07-06 05:24:43 UTC, # next update time # []] # extensions # ]
- [EXCEPTION] OpenSSL::OCSP::OCSPError:
- ステータスの読み出しに失敗した場合に発生します
verify(certs, store, flags=0) -> bool
[permalink][rdoc][edit]-
署名を検証します。
flagsには以下の値の OR を取ったものを渡します。
TRUSTOTHER を有効にすると certs で指定した証明書を検証せずに信頼します。
- [PARAM] certs:
- 検証に用いる追加的な証明書(OpenSSL::X509::Certificate オブジェクトの配列)
- [PARAM] store:
- 検証に用いる証明書ストア(OpenSSL::X509::Store オブジェクト)
- [PARAM] flags:
- フラグ(整数)