Sha256: 9a3e4b851455bdeb23418c9625716114d83ed14f3266bd3cc925c1ab496b1b15

Contents?: true

Size: 1.97 KB

Versions: 39

Compression:

Stored size: 1.97 KB

Contents

#Code to generate certificates
require 'openssl'

root_key = OpenSSL::PKey::RSA.new 2048 # the CA's public/private key
root_ca = OpenSSL::X509::Certificate.new
root_ca.version = 2 # cf. RFC 5280 - to make it a "v3" certificate
root_ca.serial = 1
root_ca.subject = OpenSSL::X509::Name.parse "/DC=org/DC=ruby-lang/CN=Ruby CA"
root_ca.issuer = root_ca.subject # root CA's are "self-signed"
root_ca.public_key = root_key.public_key
root_ca.not_before = Time.now
root_ca.not_after = root_ca.not_before + (100 * 365 * 24 * 60 * 60) # 100 years validity
ef = OpenSSL::X509::ExtensionFactory.new
ef.subject_certificate = root_ca
ef.issuer_certificate = root_ca
root_ca.add_extension(ef.create_extension("basicConstraints","CA:TRUE",true))
root_ca.add_extension(ef.create_extension("keyUsage","keyCertSign, cRLSign", true))
root_ca.add_extension(ef.create_extension("subjectKeyIdentifier","hash",false))
root_ca.add_extension(ef.create_extension("authorityKeyIdentifier","keyid:always",false))
root_ca.sign(root_key, OpenSSL::Digest::SHA256.new)
puts root_ca.to_pem
File.open("spec/fixtures/certificates/cacert.pem", "w") { |file| file << root_ca.to_pem  }

key = OpenSSL::PKey::RSA.new 2048
cert = OpenSSL::X509::Certificate.new
cert.version = 2
cert.serial = 2
cert.subject = OpenSSL::X509::Name.parse "/DC=org/DC=ruby-lang/CN=localhost"
cert.issuer = root_ca.subject # root CA is the issuer
cert.public_key = key.public_key
cert.not_before = Time.now
cert.not_after = cert.not_before + (100 * 365 * 24 * 60 * 60) # 100 years validity
ef = OpenSSL::X509::ExtensionFactory.new
ef.subject_certificate = cert
ef.issuer_certificate = root_ca
cert.add_extension(ef.create_extension("keyUsage","digitalSignature", true))
cert.add_extension(ef.create_extension("subjectKeyIdentifier","hash",false))
cert.sign(root_key, OpenSSL::Digest::SHA256.new)
puts cert.to_pem
File.open("spec/fixtures/certificates/cert.pem", "w") { |file| file << cert.to_pem  }
File.open("spec/fixtures/certificates/key.pem", "w") { |file| file << key.to_pem }

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
pact_broker-2.45.0 script/generate-certificates-for-webooks-certificate-spec.rb
pact_broker-2.44.0 script/generate-certificates-for-webooks-certificate-spec.rb
pact_broker-2.43.0 script/generate-certificates-for-webooks-certificate-spec.rb
pact_broker-2.42.0 script/generate-certificates-for-webooks-certificate-spec.rb
pact_broker-2.41.0 script/generate-certificates-for-webooks-certificate-spec.rb
pact_broker-2.40.0 script/generate-certificates-for-webooks-certificate-spec.rb
pact_broker-2.39.0 script/generate-certificates-for-webooks-certificate-spec.rb
pact_broker-2.38.1 script/generate-certificates-for-webooks-certificate-spec.rb
pact_broker-2.38.0 script/generate-certificates-for-webooks-certificate-spec.rb
pact_broker-2.37.0 script/generate-certificates-for-webooks-certificate-spec.rb
pact_broker-2.36.1 script/generate-certificates-for-webooks-certificate-spec.rb
pact_broker-2.36.0 script/generate-certificates-for-webooks-certificate-spec.rb
pact_broker-2.35.0 script/generate-certificates-for-webooks-certificate-spec.rb
pact_broker-2.34.0 script/generate-certificates-for-webooks-certificate-spec.rb
pact_broker-2.33.0 script/generate-certificates-for-webooks-certificate-spec.rb
pact_broker-2.32.0 script/generate-certificates-for-webooks-certificate-spec.rb
pact_broker-2.31.0 script/generate-certificates-for-webooks-certificate-spec.rb
pact_broker-2.30.0 script/generate-certificates-for-webooks-certificate-spec.rb
pact_broker-2.29.0 script/generate-certificates-for-webooks-certificate-spec.rb
pact_broker-2.27.6 script/generate-certificates-for-webooks-certificate-spec.rb