summaryrefslogtreecommitdiff
path: root/lib/e2e/x509.rb
blob: e5814167c6f2025bd61f7fe4730c8e6602da1816 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# frozen_string_literal: true
require 'openssl'

class X509
  def self.self_signed(key: OpenSSL::PKey::RSA.new(4096))
    certificate = OpenSSL::X509::Certificate.new
    certificate.subject = certificate.issuer = OpenSSL::X509::Name.parse("/C=/ST=/L=/O=/OU=/CN=")
    certificate.not_before = Time.now.to_i
    certificate.not_after = Time.now.to_i + 600
    certificate.public_key = key.public_key
    certificate.serial = 0x01
    certificate.version = 2
    certificate.sign(key, OpenSSL::Digest::SHA256.new)
    certificate
  end
end