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

class OpenSSL::X509::ExtensionFactory

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

要約

OpenSSL::X509::Extension を簡便に生成するためのクラスです。

require 'openssl'
# ca_cert: CA の証明書オブジェクト
# req: CSR オブジェクト
# newcert: 新たに生成する証明書のオブジェクト
ca_cert = OpenSSL::X509::Certificate.new(File.read('ca_cert.pem'))
req = OpenSSL::X509::Request.new(File.read('req.pem'))
newcert = OpenSSL::X509::Certificate.new
# 新しい ExtensionFactory オブジェクトを生成し、 CA の証明書オブジェクト
# を設定
factory = OpenSSL::X509::ExtensionFactory.new(ca_cert)
# CSR オブジェクトを設定
factory.subject_request = req
# basicConstraints 拡張領域を生成
p factory.create_extension("basicConstraints", "CA:FALSE")
# => basicConstraints = CA:FALSE

# subjectKeyIdentifier 拡張領域を生成
# この値は CSR オブジェクトの公開鍵から生成される
p factory.create_extension("subjectKeyIdentifier", "hash")
# => subjectKeyIdentifier = 99:E7:A1:.....

# authorityKeyIdentifier 拡張領域を生成
# この値は CA の証明書オブジェクトから生成される
p factory.create_extension("authorityKeyIdentifier", "keyid,issuer:always")
# => authorityKeyIdentifier = keyid:D1:AB:87:....

# 生成した拡張領域オブジェクトを証明書の拡張領域に追加
newcert.add_extension(factory.create_extension("basicConstraints", "CA:FALSE"))

特異メソッド

定義 説明
new(issuer_cert=nil, subject_cert=nil, subject_req=nil, crl=nil) -> OpenSSL::X509::ExtensionFactory

ExtensionFactory オブジェクトを生成します。

インスタンスメソッド

定義 説明
config -> OpenSSL::Config

自身に設定されているコンフィグファイルオブジェクトを設定します。

config=(config)

自身にコンフィグファイルオブジェクトを設定します。

create_ext(oid, value, critical = false) -> OpenSSL::X509::Extension

OpenSSL::X509::Extension のインスタンスを生成して返します。

create_ext_from_array(ary) -> OpenSSL::X509::Extension

[oid, value, critical] もしくは [oid, value] という配列から OpenSSL::X509::Extension オブジェクトを生成します。

create_ext_from_hash(hash) -> OpenSSL::X509::Extension

ハッシュから OpenSSL::X509::Extension オブジェクトを生成します。

create_ext_from_string(str) -> OpenSSL::X509::Extension

文字列から OpenSSL::X509::Extension オブジェクトを生成します。

create_extension(obj) -> OpenSSL::X509::Extension
create_extension(oid, value, critical=false) -> OpenSSL::X509::Extension

OpenSSL::X509::Extension のインスタンスを生成して返します。

crl -> OpenSSL::X509::CRL | nil

自身に設定された証明書失効リストオブジェクトを返します。

crl=(crl)

自身に証明書失効リストオブジェクトを設定します。

issuer_certificate -> OpenSSL::X509::Certificate | nil

自身に設定されている発行者(issuer)の証明書オブジェクトを返します。

issuer_certificate=(cert)

自身に発行者(issuer)の証明書オブジェクトを設定します。

subject_certificate -> OpenSSL::X509::Certificate | nil

自身に設定されている所有者(subject)の証明書オブジェクトを返します。

subject_certificate=(name)

自身に所有者(subject)の証明書オブジェクトを設定します。

subject_request -> OpenSSL::X509::Request | nil

自身に設定されている証明書署名要求オブジェクトを返します。

subject_request=(req)

自身に証明書署名要求オブジェクトを設定します。

継承したメソッド

! != __id__ __send__ instance_eval instance_exec method_missing singleton_method_added singleton_method_removed singleton_method_undefined !~ <=> == === =~ _dump class clone define_singleton_method display enum_for eql? equal? extend freeze frozen? hash initialize initialize_copy inspect instance_of? instance_variable_defined? instance_variable_get instance_variable_set instance_variables is_a? itself marshal_dump marshal_load method methods nil? object_id pretty_inspect pretty_print pretty_print_cycle pretty_print_inspect pretty_print_instance_variables private_methods protected_methods psych_to_yaml public_method public_methods public_send remove_instance_variable respond_to? respond_to_missing? send singleton_class singleton_method singleton_methods taint tainted? tap to_a to_ary to_hash to_int to_io to_proc to_regexp to_s to_str trust untaint untrust untrusted? .yaml_tag ::ARGF ::ARGV ::DATA ::ENV ::FALSE ::NIL ::RUBY_COPYRIGHT ::RUBY_DESCRIPTION ::RUBY_ENGINE ::RUBY_ENGINE_VERSION ::RUBY_PATCHLEVEL ::RUBY_PLATFORM ::RUBY_RELEASE_DATE ::RUBY_REVISION ::RUBY_VERSION ::SCRIPT_LINES__ ::STDERR ::STDIN ::STDOUT ::TOPLEVEL_BINDING ::TRUE