Project

General

Profile

Feature #14377 » client.rb

graywolf (Gray Wolf), 01/19/2018 10:55 PM

 
require 'socket'
require 'openssl'

socket = TCPSocket.new('127.0.0.1', 9876)

cert_store = OpenSSL::X509::Store.new
cert_store.set_default_paths
cert_store.verify_callback = lambda do |preverify_ok, store_ctx|
true
end

ctx = OpenSSL::SSL::SSLContext.new
ctx.key = OpenSSL::PKey::RSA.new(File.open('client.key'))
ctx.cert = OpenSSL::X509::Certificate.new(File.open('client.crt'))
ctx.cert_store = cert_store

ssl_socket = OpenSSL::SSL::SSLSocket.new(socket, ctx)
ssl_socket.sync_close = true

ssl_socket.connect

ssl_socket.close
(1-1/2)