type=class
superclass=Object
included=
extended=
library=openssl
aliases=
aliasof=

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


例
  # 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"))
