Advertisement
Guest User

Untitled

a guest
Sep 30th, 2014
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.13 KB | None | 0 0
  1. irb(main):219:0* tcp_client = TCPSocket.new("paypal.com", 443)
  2. ssl_client = OpenSSL::SSL::SSLSocket.new(tcp_client)
  3. ssl_client.connect
  4. cert = OpenSSL::X509::Certificate.new(ssl_client.peer_cert)
  5. ssl_client.sysclose
  6. tcp_client.close
  7.  
  8. certprops = OpenSSL::X509::Name.new(cert.issuer).to_a
  9. issuer = certprops.select { |name, data, type| name == "O" }.first[1]
  10. results = {
  11.             :valid_on => cert.not_before,
  12.             :valid_until => cert.not_after,
  13.             :issuer => issuer,
  14.             :valid => (ssl_client.verify_result == 0)
  15.           }
  16.  
  17. => #<TCPSocket:fd 11>
  18. irb(main):220:0> ssl_client = OpenSSL::SSL::SSLSocket.new(tcp_client)
  19. => #<OpenSSL::SSL::SSLSocket:0x007fed94277548 @io=#<TCPSocket:fd 11>, @context=#<OpenSSL::SSL::SSLContext:0x007fed94277520 @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>
  20. irb(main):221:0> ssl_client.connect
  21. => #<OpenSSL::SSL::SSLSocket:0x007fed94277548 @io=#<TCPSocket:fd 11>, @context=#<OpenSSL::SSL::SSLContext:0x007fed94277520 @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>
  22. irb(main):222:0> cert = OpenSSL::X509::Certificate.new(ssl_client.peer_cert)
  23. => #<OpenSSL::X509::Certificate subject=#<OpenSSL::X509::Name:0x007fed9427e028>, issuer=#<OpenSSL::X509::Name:0x007fed9427dfb0>, serial=#<OpenSSL::BN:0x007fed9427df38>, not_before=2013-01-10 00:00:00 UTC, not_after=2015-01-11 23:59:59 UTC>
  24. irb(main):223:0> ssl_client.sysclose
  25. => nil
  26. irb(main):224:0> tcp_client.close
  27. => nil
  28. irb(main):225:0>
  29. irb(main):226:0* certprops = OpenSSL::X509::Name.new(cert.issuer).to_a
  30. => [["C", "US", 19], ["O", "VeriSign, Inc.", 19], ["OU", "VeriSign Trust Network", 19], ["OU", "Terms of use at https://www.verisign.com/rpa (c)10", 19], ["CN", "VeriSign Class 3 Secure Server CA - G3", 19]]
  31. irb(main):227:0> issuer = certprops.select { |name, data, type| name == "O" }.first[1]
  32. => "VeriSign, Inc."
  33. irb(main):228:0> results = {
  34. irb(main):229:1*             :valid_on => cert.not_before,
  35. irb(main):230:1*             :valid_until => cert.not_after,
  36. irb(main):231:1*             :issuer => issuer,
  37. irb(main):232:1*             :valid => (ssl_client.verify_result == 0)
  38. irb(main):233:1>           }
  39. => {:valid_on=>2013-01-10 00:00:00 UTC, :valid_until=>2015-01-11 23:59:59 UTC, :issuer=>"VeriSign, Inc.", :valid=>false}
  40. irb(main):234:0>
  41. irb(main):235:0*
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement