End of Life Ruby 3.2 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →
class method
Gem::Request.configure_connection_for_https
configure_connection_for_https(connection, cert_files)
lib/rubygems/request.rb
View on GitHub ↗
# File tmp/rubies/ruby-3.2.0/lib/rubygems/request.rb, line 46
def self.configure_connection_for_https(connection, cert_files)
raise Gem::Exception.new("OpenSSL is not available. Install OpenSSL and rebuild Ruby (preferred) or use non-HTTPS sources") unless Gem::HAVE_OPENSSL
connection.use_ssl = true
connection.verify_mode =
Gem.configuration.ssl_verify_mode || OpenSSL::SSL::VERIFY_PEER
store = OpenSSL::X509::Store.new
if Gem.configuration.ssl_client_cert
pem = File.read Gem.configuration.ssl_client_cert
connection.cert = OpenSSL::X509::Certificate.new pem
connection.key = OpenSSL::PKey::RSA.new pem
end
store.set_default_paths
cert_files.each do |ssl_cert_file|
store.add_file ssl_cert_file
end
if Gem.configuration.ssl_ca_cert
if File.directory? Gem.configuration.ssl_ca_cert
store.add_path Gem.configuration.ssl_ca_cert
else
store.add_file Gem.configuration.ssl_ca_cert
end
end
connection.cert_store = store
connection.verify_callback = proc do |preverify_ok, store_context|
verify_certificate store_context unless preverify_ok
preverify_ok
end
connection
end
No documentation available