Server IP : 66.29.132.122 / Your IP : 3.145.173.112 Web Server : LiteSpeed System : Linux business142.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : admazpex ( 531) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/proc/self/root/proc/thread-self/root/proc/thread-self/root/proc/self/root/proc/thread-self/root/proc/self/root/proc/self/root/proc/self/root/opt/alt/ruby26/lib64/ruby/2.6.0/bundler/ssl_certs/ |
Upload File : |
# frozen_string_literal: true require "bundler/vendored_fileutils" require "net/https" require "openssl" module Bundler module SSLCerts class CertificateManager attr_reader :bundler_cert_path, :bundler_certs, :rubygems_certs def self.update_from!(rubygems_path) new(rubygems_path).update! end def initialize(rubygems_path = nil) if rubygems_path rubygems_cert_path = File.join(rubygems_path, "lib/rubygems/ssl_certs") @rubygems_certs = certificates_in(rubygems_cert_path) end @bundler_cert_path = File.expand_path("..", __FILE__) @bundler_certs = certificates_in(bundler_cert_path) end def up_to_date? rubygems_certs.all? do |rc| bundler_certs.find do |bc| File.basename(bc) == File.basename(rc) && FileUtils.compare_file(bc, rc) end end end def update! return if up_to_date? FileUtils.rm bundler_certs FileUtils.cp rubygems_certs, bundler_cert_path end def connect_to(host) http = Net::HTTP.new(host, 443) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_PEER http.cert_store = store http.head("/") end private def certificates_in(path) Dir[File.join(path, "**/*.pem")].sort end def store @store ||= begin store = OpenSSL::X509::Store.new bundler_certs.each do |cert| store.add_file cert end store end end end end end