@@ -37,10 +37,11 @@ class << self
3737 # @param tls_cert [OpenSSL::X509::Certificate, nil]
3838 # @param tls_key [OpenSSL::PKey::PKey, nil]
3939 # @param unix_socket_path [String, nil]
40+ # @param tls_verify_peer [Boolean]
4041 # @param url [URI::Generic]
4142 #
4243 # @return [Net::HTTP]
43- def connect ( cert_store :, tls_cert :, tls_key :, unix_socket_path :, url :)
44+ def connect ( cert_store :, tls_cert :, tls_key :, unix_socket_path :, tls_verify_peer : , url :)
4445 if unix_socket_path
4546 return UnixSocketHTTP . new ( unix_socket_path ) . tap do
4647 _1 . use_ssl = false
@@ -65,6 +66,7 @@ def connect(cert_store:, tls_cert:, tls_key:, unix_socket_path:, url:)
6566 _1 . cert_store = cert_store
6667 _1 . cert = tls_cert if tls_cert
6768 _1 . key = tls_key if tls_key
69+ _1 . verify_mode = tls_verify_peer ? OpenSSL ::SSL ::VERIFY_PEER : OpenSSL ::SSL ::VERIFY_NONE
6870 end
6971 end
7072 end
@@ -141,6 +143,7 @@ def build_request(request, &blk)
141143 tls_cert : @tls_cert ,
142144 tls_key : @tls_key ,
143145 unix_socket_path : unix_socket_path ,
146+ tls_verify_peer : @tls_verify_peer ,
144147 url : url
145148 )
146149 end
@@ -236,22 +239,27 @@ def execute(request)
236239 # @param tls_client_cert_path [String, nil]
237240 # @param tls_client_key_path [String, nil]
238241 # @param unix_socket_path [String, nil]
242+ # @param tls_verify_peer [Boolean]
239243 def initialize (
240244 size : self . class ::DEFAULT_MAX_CONNECTIONS ,
241245 unix_socket_path : nil ,
246+ tls_verify_peer : true ,
242247 tls_ca_cert_path : nil ,
243248 tls_client_cert_path : nil ,
244249 tls_client_key_path : nil
245250 )
246251 @mutex = Mutex . new
247252 @size = size
248253 @default_unix_socket_path = unix_socket_path
254+ @tls_verify_peer = tls_verify_peer
249255 @cert_store = OpenSSL ::X509 ::Store . new . tap ( &:set_default_paths )
250256 @cert_store . add_file ( tls_ca_cert_path ) if tls_ca_cert_path
251257
252258 if tls_client_cert_path || tls_client_key_path
253259 if tls_client_cert_path . nil? || tls_client_key_path . nil?
254- raise ArgumentError . new ( "Both tls_client_cert_path and tls_client_key_path must be provided together." )
260+ raise ArgumentError . new (
261+ "Both tls_client_cert_path and tls_client_key_path must be provided together."
262+ )
255263 end
256264
257265 @tls_cert = OpenSSL ::X509 ::Certificate . new ( File . read ( tls_client_cert_path ) )
0 commit comments