Sha256: ee84e4df34d1fc22993a9a55c7ca5218952af00770752cd4f6e11bb8404e745e

Contents?: true

Size: 953 Bytes

Versions: 2

Compression:

Stored size: 953 Bytes

Contents

#!/usr/bin/env ruby

require 'uri'
require 'securerandom'
require 'logger'
require 'sequel'

uri_string = ARGV[0]
database = ARGV[1]
raise "Usage: #{__FILE__} URI SQLITE_DATABASE_PATH" unless uri_string && database

DATABASE_CREDENTIALS = {logger: Logger.new($stdout), adapter: "sqlite", database: database, :encoding => 'utf8'}

uri = URI(uri_string)
connection = Sequel.connect(DATABASE_CREDENTIALS)

certificate_command = "openssl s_client -showcerts -servername #{uri.host} -connect #{uri.host}:#{uri.port} </dev/null 2>/dev/null | openssl x509 -outform PEM"
certificate_content = `#{certificate_command}`

puts "Downloaded certificate from #{uri.host}: #{certificate_content}"

certificate_hash = {
  uuid: SecureRandom.urlsafe_base64,
  description: "Self signed certificate for #{uri.host}",
  content: certificate_content,
  created_at: DateTime.now,
  updated_at: DateTime.now
}

connection[:certificates].insert(certificate_hash)

puts "Done"

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pact_broker-2.13.1 script/insert-self-signed-certificate-from-url.rb
pact_broker-2.13.0 script/insert-self-signed-certificate-from-url.rb