# Modified from:
#   http://findingscience.com/ruby/ssl/2013/01/13/reading-an-ssl-cert-in-ruby.html

require "socket"
require "openssl"

host = "www.piranhas.co"

tcp_client = TCPSocket.new("www.piranhas.co", 443)
ssl_client = OpenSSL::SSL::SSLSocket.new(tcp_client)
ssl_client.hostname = host
ssl_client.connect
cert = OpenSSL::X509::Certificate.new(ssl_client.peer_cert)
ssl_client.sysclose
tcp_client.close

certprops = OpenSSL::X509::Name.new(cert.issuer).to_a
issuer = certprops.select { |name, data, type| name == "O" }.first[1]
results = { 
  valid_on: cert.not_before,
  valid_until: cert.not_after,
  issuer: issuer,
  valid: (ssl_client.verify_result == 0)
}