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
[permalink][rdoc]new(obj) -> OpenSSL::X509::Request
新しい OpenSSL::X509::Request オブジェクトを生成します。
引数なしの場合は空の OpenSSL::X509::Request オブジェクトを生成します。
引数が文字列の場合は、PEM 形式もしくは DER 形式であるとみなしてオブジェクトを生成します。
引数が IO オブジェクトである場合は、そのファイルの中身からオブジェクトを生成します。
引数が OpenSSL::X509::Request である場合には、その内容をコピーしたオブジェクトを生成します。
引数が to_der メソッドを持つ場合は、そのメソッドによって DER 形式の文字列に変換してからオブジェクトを生成します。
add_attribute(attr) -> OpenSSL::X509::Attribute
[permalink][rdoc]新たな attribute を CSR に追加します。
[SEE_ALSO] OpenSSL::X509::Request#attribute, OpenSSL::X509::Request#attribute=
attributes -> [OpenSSL::X509::Attribute]
[permalink][rdoc]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)
[permalink][rdoc]CSR の attribute をクリアして新しい attribute を設定します。
[SEE_ALSO] OpenSSL::X509::Request#attribute OpenSSL::X509::Request#add_attribute
public_key -> OpenSSL::PKey::PKey
[permalink][rdoc]申請者の公開鍵を返します。
実際には OpenSSL::PKey::PKey 自体のインスタンスでなく、そのサブクラスを返します。
public_key=(pkey)
[permalink][rdoc]申請者の公開鍵を設定します。
sign(key, digest) -> self
[permalink][rdoc]証明書署名要求に秘密鍵で署名をします。
通常、証明書署名要求は申請者の秘密鍵で署名されます。
[SEE_ALSO] OpenSSL::X509::Request#verify
signature_algorithm -> String
[permalink][rdoc]証明書署名要求の署名に使われているアルゴリズム名を文字列で返します。
subject -> OpenSSL::X509::Name
[permalink][rdoc]証明書署名要求の申請者名を返します。
[SEE_ALSO] OpenSSL::X509::Request#subject=
subject=(subject)
[permalink][rdoc]証明書署名要求の申請者名を設定します。
[SEE_ALSO] OpenSSL::X509::Request#subject
to_der -> String
[permalink][rdoc]DER 形式の文字列に変換して返します。
to_pem -> String
[permalink][rdoc]to_s -> String
PEM 形式の文字列に変換して返します。
to_text -> String
[permalink][rdoc]人間が読める形式の文字列に変換して返します。
verify(key) -> bool
[permalink][rdoc]署名を検証します。
検証に成功した場合には true を、失敗した場合には false を返します。
[SEE_ALSO] OpenSSL::X509::Request#sign
version -> Integer
[permalink][rdoc]バージョンを返します。
PKCS#10 v1.7([RFC2986])では0を返します。
[SEE_ALSO] OpenSSL::X509::Request#version=
version=(version)
[permalink][rdoc]バージョンを設定します。
[SEE_ALSO] OpenSSL::X509::Request#version