Ruby on UBI via OpenSSL does not observe OPENSSL_CERT_DIR
Summary
gitlab-org/build/CNG!515 (comment 403427519)
@jplum: These changes appear to be working, but in the process of checking everything out, we discovered what might be a bug in how Ruby on UBI (via OpenSSL) is handling things:
require 'openssl' require 'open-uri' OpenSSL::X509::DEFAULT_CERT_FILE OpenSSL::X509::DEFAULT_CERT_DIR Dir.glob("#{OpenSSL::X509::DEFAULT_CERT_DIR}/*") URI.open('https://certcheck.pitc.apps.ge.com/imagenew.png')irb(main):001:0> require 'openssl' => false irb(main):002:0> require 'open-uri' => false irb(main):003:0> irb(main):004:0> irb(main):005:0> OpenSSL::X509::DEFAULT_CERT_FILE => "/etc/pki/tls/cert.pem" irb(main):006:0> OpenSSL::X509::DEFAULT_CERT_DIR => "/etc/pki/tls/certs" irb(main):007:0> Dir.glob("#{OpenSSL::X509::DEFAULT_CERT_DIR}/*") => ["/etc/pki/tls/certs/ca-bundle.trust.crt", "/etc/pki/tls/certs/ca-bundle.crt"] irb(main):008:0> irb(main):009:0> URI.open('https://certcheck.pitc.apps.ge.com/imagenew.png') Traceback (most recent call last): 1: from (irb):9 OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get lo
Steps to reproduce
- Apply configuration listed below
- Deploy helm chart
- Exec into task-runner
- Run the following via
irb:require 'openssl' require 'open-uri' OpenSSL::X509::DEFAULT_CERT_FILE OpenSSL::X509::DEFAULT_CERT_DIR Dir.glob("#{OpenSSL::X509::DEFAULT_CERT_DIR}/*") URI.open('https://certcheck.pitc.apps.ge.com/imagenew.png')
Configuration used
(Please provide a sanitized version of the configuration used wrapped in a code block (```yaml))
(Paste sanitized configuration here)
Current behavior
Receiving 'certificate verify failed (unable to get local issuer certificate).'
Expected behavior
Receive no SSL errors.
(What you're expecting to happen)
Versions
- Chart:
f9e48a1c70a3a27a0c63842233c5d46e10e41578 - Platform:
- Cloud: GKE
- Kubernetes: (
kubectl version)- Client: 1.17.3
- Server: 1.14.10-gke.42
- Helm: (
helm version)- Client: v3.1.2
- Server: N/A
Relevant logs
(Please provide any relevate log snippets you have collected, using code blocks (```) to format)
irb(main):001:0> require 'openssl'
=> false
irb(main):002:0> require 'open-uri'
=> false
irb(main):003:0>
irb(main):004:0>
irb(main):005:0> OpenSSL::X509::DEFAULT_CERT_FILE
=> "/etc/pki/tls/cert.pem"
irb(main):006:0> OpenSSL::X509::DEFAULT_CERT_DIR
=> "/etc/pki/tls/certs"
irb(main):007:0> Dir.glob("#{OpenSSL::X509::DEFAULT_CERT_DIR}/*")
=> ["/etc/pki/tls/certs/ca-bundle.trust.crt", "/etc/pki/tls/certs/ca-bundle.crt"]
irb(main):008:0>
irb(main):009:0> URI.open('https://certcheck.pitc.apps.ge.com/imagenew.png')
Traceback (most recent call last):
1: from (irb):9
OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get local issuer certificate))