mirror of
https://github.com/lostisland/faraday.git
synced 2025-11-11 00:04:44 -05:00
29 lines
873 B
Ruby
Executable File
29 lines
873 B
Ruby
Executable File
#!/usr/bin/env ruby
|
|
# Usage: generate_certs
|
|
# Generate test certs for testing Faraday with SSL
|
|
|
|
require 'openssl'
|
|
require 'fileutils'
|
|
|
|
# Adapted from WEBrick::Utils. Skips cert extensions so it
|
|
# can be used as a CA bundle
|
|
def create_self_signed_cert(bits, cn, comment)
|
|
rsa = OpenSSL::PKey::RSA.new(bits)
|
|
cert = OpenSSL::X509::Certificate.new
|
|
cert.version = 2
|
|
cert.serial = 1
|
|
name = OpenSSL::X509::Name.new(cn)
|
|
cert.subject = name
|
|
cert.issuer = name
|
|
cert.not_before = Time.now
|
|
cert.not_after = Time.now + (365*24*60*60)
|
|
cert.public_key = rsa.public_key
|
|
cert.sign(rsa, OpenSSL::Digest::SHA1.new)
|
|
return [cert, rsa]
|
|
end
|
|
|
|
cert, key = create_self_signed_cert(1024, [['CN', 'localhost']], 'Faraday Test CA')
|
|
FileUtils.mkdir_p 'tmp'
|
|
File.open('tmp/faraday-cert.key', 'w') {|f| f.puts(key) }
|
|
File.open('tmp/faraday-cert.crt', 'w') {|f| f.puts(cert.to_s) }
|