Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > opensslライブラリ > OpenSSL::X509::Requestクラス

class OpenSSL::X509::Request

クラスの継承リスト: OpenSSL::X509::Request < Object < Kernel < BasicObject

要約

X.509 の証明書署名要求(Certificate Signing Request, CSR)を表わす クラスです。

X.509 CSR については [RFC2986] などを参照してください。

CSR を生成する例。

require 'openssl'
# ファイルから秘密鍵を読み込む
rsa = OpenSSL::PKey::RSA.new(File.read("privkey.pem"))
# 新しい CSR オブジェクトを生成
csr = OpenSSL::X509::Request.new
# DN を生成
name = OpenSSL::X509::Name.new
name.add_entry('C', 'JP')
name.add_entry('ST', 'Osaka')
name.add_entry('CN', 'Example Name')
csr.subject = name
# バージョンを 0 (v1.7) に
csr.version = 0
# 公開鍵を CSR に設定
csr.public_key = rsa.public_key
# attribute を設定
factory = OpenSSL::X509::ExtensionFactory.new
exts = [ factory.create_ext("subjectAltName", "DNS:foo.example.com") ]
asn1exts = OpenSSL::ASN1::Set([OpenSSL::ASN1::Sequence(exts)])
csr.add_attribute(OpenSSL::X509::Attribute.new("extReq", asn1exts))
# 署名
csr.sign(rsa, "sha1")
# PEM 形式で標準出力に出力
puts csr.to_pem

特異メソッド

new -> OpenSSL::X509::Request
new(obj) -> OpenSSL::X509::Request

新しい OpenSSL::X509::Request オブジェクトを生成します。

引数なしの場合は空の OpenSSL::X509::Request オブジェクトを生成します。

引数が文字列の場合は、PEM 形式もしくは DER 形式であると みなしてオブジェクトを生成します。

引数が IO オブジェクトである場合は、そのファイルの中身から オブジェクトを生成します。

引数が OpenSSL::X509::Request である場合には、その内容を コピーしたオブジェクトを生成します。

引数が to_der メソッドを持つ場合は、そのメソッドによって DER 形式の文字列に変換してからオブジェクトを生成します。

[PARAM] obj:
CSR のデータ
[EXCEPTION] OpenSSL::X509::RequestError:
CSR のフォーマットが不正であるなど、読み込みに失敗した場合に発生します

インスタンスメソッド

add_attribute(attr) -> OpenSSL::X509::Attribute

新たな attribute を CSR に追加します。

[PARAM] attr:
追加する attribute(OpenSSL::X509::Attribute の インスタンス)
[RETURN]
渡した attribute オブジェクトを返します

[SEE_ALSO] OpenSSL::X509::Request#attribute, OpenSSL::X509::Request#attribute=

attributes -> [OpenSSL::X509::Attribute]

CSR が保持している attribute を OpenSSL::X509::Attribute の配列で返します。

attribute とは X.509 証明書署名要求 に含まれる申請者に関する 追加的な情報です。必須ではありません。X.509v3 拡張領域を CSR に含めるときは "reqExt" という oid の attribute を追加 します。

[SEE_ALSO] OpenSSL::X509::Request#attribute=, OpenSSL::X509::Request#add_attribute

attributes=(attrs)

CSR の attribute をクリアして新しい attribute を設定します。

[PARAM] attrs:
新たに設定する attribute(OpenSSL::X509::Attribute の インスタンス)の配列

[SEE_ALSO] OpenSSL::X509::Request#attribute OpenSSL::X509::Request#add_attribute

public_key -> OpenSSL::PKey::PKey

申請者の公開鍵を返します。

実際には OpenSSL::PKey::PKey 自体のインスタンスでなく、 そのサブクラスを返します。

[EXCEPTION] OpenSSL::X509::RequestError:
公開鍵の取得に失敗した場合に発生します
[EXCEPTION] OpenSSL::PKey::PKeyError:
鍵の形式が不正であった場合に発生します
public_key=(pkey)

申請者の公開鍵を設定します。

[PARAM] pkey:
設定する公開鍵を OpenSSL::PKey::PKey のサブクラスのインスタンスで渡します
[EXCEPTION] OpenSSL::X509::RequestError:
公開鍵の設定に失敗した場合に発生します
sign(key, digest) -> self

証明書署名要求に秘密鍵で署名をします。

通常、証明書署名要求は申請者の秘密鍵で署名されます。

[PARAM] key:
秘密鍵(OpenSSL::PKey::PKey のサブクラスのオブジェクト)
[PARAM] digest:
ハッシュ関数を表す文字列("sha1" など)
[EXCEPTION] OpenSSL::X509::RequestError:
署名に失敗した場合に発生します

[SEE_ALSO] OpenSSL::X509::Request#verify

signature_algorithm -> String

証明書署名要求の署名に使われているアルゴリズム名を文字列で返します。

subject -> OpenSSL::X509::Name

証明書署名要求の申請者名を返します。

[EXCEPTION] OpenSSL::X509::RequestError:
名前の取得に失敗した場合に発生します

[SEE_ALSO] OpenSSL::X509::Request#subject=

subject=(subject)

証明書署名要求の申請者名を設定します。

[PARAM] subject:
設定する名前を OpenSSL::X509::Name で渡します
[EXCEPTION] OpenSSL::X509::RequestError:
名前の設定に失敗した場合に発生します

[SEE_ALSO] OpenSSL::X509::Request#subject

to_der -> String

DER 形式の文字列に変換して返します。

[EXCEPTION] OpenSSL::X509::RequestError:
変換に失敗した場合に発生します
to_pem -> String
to_s -> String

PEM 形式の文字列に変換して返します。

[EXCEPTION] OpenSSL::X509::RequestError:
変換に失敗した場合に発生します
to_text -> String

人間が読める形式の文字列に変換して返します。

[EXCEPTION] OpenSSL::X509::RequestError:
変換に失敗した場合に発生します
verify(key) -> bool

署名を検証します。

検証に成功した場合には true を、失敗した場合には false を返します。

[PARAM] key:
検証に利用する公開鍵(OpenSSL::PKey::PKey のサブクラスのインスタンス)
[EXCEPTION] OpenSSL::X509::RequestError:
検証時にエラーが生じた場合に発生します

[SEE_ALSO] OpenSSL::X509::Request#sign

version -> Integer

バージョンを返します。

PKCS#10 v1.7([RFC2986])では0を返します。

[SEE_ALSO] OpenSSL::X509::Request#version=

version=(version)

バージョンを設定します。

[PARAM] version:
設定するバージョンの整数

[SEE_ALSO] OpenSSL::X509::Request#version

class OpenSSL::X509::Request