Class: LocalDevelopmentGateway::DatabaseRouter::Drivers::PostgreSqlCertificate
- Inherits:
-
Object
- Object
- LocalDevelopmentGateway::DatabaseRouter::Drivers::PostgreSqlCertificate
- Defined in:
- lib/local_development_gateway/database_router/drivers/postgre_sql_certificate.rb
Instance Method Summary collapse
- #context(&servername_callback) ⇒ Object
-
#initialize ⇒ PostgreSqlCertificate
constructor
A new instance of PostgreSqlCertificate.
Constructor Details
#initialize ⇒ PostgreSqlCertificate
Returns a new instance of PostgreSqlCertificate.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/local_development_gateway/database_router/drivers/postgre_sql_certificate.rb', line 8 def initialize @key = OpenSSL::PKey::EC.generate("prime256v1") @certificate = OpenSSL::X509::Certificate.new @certificate.version = 2 @certificate.serial = 1 @certificate.subject = OpenSSL::X509::Name.parse("/CN=local-development-gateway") @certificate.issuer = @certificate.subject @certificate.public_key = @key @certificate.not_before = Time.now - 60 @certificate.not_after = Time.now + (10 * 365 * 24 * 60 * 60) extensions = OpenSSL::X509::ExtensionFactory.new extensions.subject_certificate = @certificate extensions.issuer_certificate = @certificate @certificate.add_extension( extensions.create_extension("basicConstraints", "CA:FALSE", true) ) @certificate.add_extension( extensions.create_extension("keyUsage", "digitalSignature", true) ) @certificate.add_extension( extensions.create_extension("extendedKeyUsage", "serverAuth") ) @certificate.sign(@key, OpenSSL::Digest::SHA256.new) end |
Instance Method Details
#context(&servername_callback) ⇒ Object
34 35 36 37 38 39 40 41 |
# File 'lib/local_development_gateway/database_router/drivers/postgre_sql_certificate.rb', line 34 def context(&servername_callback) context = OpenSSL::SSL::SSLContext.new context.cert = @certificate context.key = @key context.min_version = OpenSSL::SSL::TLS1_2_VERSION context.servername_cb = servername_callback context end |