Skip to content

Instantly share code, notes, and snippets.

@claudijd
Created April 6, 2014 03:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save claudijd/10001072 to your computer and use it in GitHub Desktop.
Save claudijd/10001072 to your computer and use it in GitHub Desktop.
Default Ruby 2.x OpenSSL Socket Behavior
>> require 'socket'
=> true
>> require 'openssl'
=> true
>>
?> sock = TCPSocket.new('10.70.32.104', 443)
=> #<TCPSocket:fd 7>
>> ctx = OpenSSL::SSL::SSLContext.new
=> #<OpenSSL::SSL::SSLContext:0x000001018a5c08 @cert=nil, @key=nil, @client_ca=nil, @ca_file=nil, @ca_path=nil, @timeout=nil, @verify_mode=nil, @verify_depth=nil, @renegotiation_cb=nil, @verify_callback=nil, @options=nil, @cert_store=nil, @extra_chain_cert=nil, @client_cert_cb=nil, @tmp_dh_callback=nil, @session_id_context=nil, @session_get_cb=nil, @session_new_cb=nil, @session_remove_cb=nil, @servername_cb=nil, @npn_protocols=nil, @npn_select_cb=nil>
>> ssl_sock = OpenSSL::SSL::SSLSocket.new(sock, ctx)
=> #<OpenSSL::SSL::SSLSocket:0x000001018b7570 @io=#<TCPSocket:fd 7>, @context=#<OpenSSL::SSL::SSLContext:0x000001018a5c08 @cert=nil, @key=nil, @client_ca=nil, @ca_file=nil, @ca_path=nil, @timeout=nil, @verify_mode=nil, @verify_depth=nil, @renegotiation_cb=nil, @verify_callback=nil, @options=nil, @cert_store=nil, @extra_chain_cert=nil, @client_cert_cb=nil, @tmp_dh_callback=nil, @session_id_context=nil, @session_get_cb=nil, @session_new_cb=nil, @session_remove_cb=nil, @servername_cb=nil, @npn_protocols=nil, @npn_select_cb=nil>, @sync_close=false, @hostname=nil, @eof=false, @rbuffer="", @sync=true>
>> ssl_sock.connect
=> #<OpenSSL::SSL::SSLSocket:0x000001018b7570 @io=#<TCPSocket:fd 7>, @context=#<OpenSSL::SSL::SSLContext:0x000001018a5c08 @cert=nil, @key=nil, @client_ca=nil, @ca_file=nil, @ca_path=nil, @timeout=nil, @verify_mode=nil, @verify_depth=nil, @renegotiation_cb=nil, @verify_callback=nil, @options=nil, @cert_store=nil, @extra_chain_cert=nil, @client_cert_cb=nil, @tmp_dh_callback=nil, @session_id_context=nil, @session_get_cb=nil, @session_new_cb=nil, @session_remove_cb=nil, @servername_cb=nil, @npn_protocols=nil, @npn_select_cb=nil>, @sync_close=false, @hostname=nil, @eof=false, @rbuffer="", @sync=true, @callback_state=nil>
>> ssl_sock.write("GET / HTTP/1.0\r\n\r\n")
=> 18
>> ssl_sock.gets
=> "HTTP/1.1 301 Moved Permanently\r\n"
>>
?> RUBY_VERSION
=> "2.0.0"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment