#!/usr/bin/env ruby

cert = <<CERT
-----BEGIN CERTIFICATE-----
MIICpDCCAYwCCQCXwT0fG5AGyjANBgkqhkiG9w0BAQUFADAUMRIwEAYDVQQDEwls
b2NhbGhvc3QwHhcNMTIwMjI5MDkwNjM3WhcNMjIwMjI2MDkwNjM3WjAUMRIwEAYD
VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7
2408XwgMqin+AD0zumUdUSfgzZ/Vsm/bnAjS/HU64CzHIMAe5V4ftS7MnYvcd3lv
zjj4EKqwrcugTmZZ3eWCq/JTQgL79NatfOHjNf22lGZnXFeBsPnpFk3i3IsN3ktg
5GAhQPEw+QNxZdHq/kxes4S5lYN8gxew5w8MtU48pe+aO/kdUAVFzKNE7I6VG6j5
GF2MR9MepwAOY+47IAIctr29h65SfofP6L6IkISyHV3EyTpVbrxnTmIBqOHarxGr
7lKpR9w+0V5TwS31YIbKJaoVcb8fQfOoFgYFdAgKIaJZbmvlVKqI9QBZrTqRy7zK
y9xezcEX/8ifTUNsQYZtAgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAGoRRKNtQDIp
Z2UMFnExDOEYbKtIUT5OPozjSxqMadCEUkSKWMvmx2t+siRujF2ua3S6Rt8W34zD
oIyk0owL2IuxTNDIHb4VsApTxhvRktOlyFaDOPzuijThiY9gyaRAkOzt8TpbtLEz
UJBgcCjpXgOUykH3KOHO0oWEApvAf5hEGRdUusZfnPEgetMQpSlyYYcs+ryViRVi
T9ZrIV56woTWSobCiDUhKfqf6QKbfIJXjOwH/dbW8mpD2rzi6aItnVBg9NpjZopJ
jgMJBQaXS+HRNAiHwgtjvFUim6zQAtb69vovDAODYcWRhCbOZS2S7rBW/HCpAGvC
z4sCfmK4XKU=
-----END CERTIFICATE-----
CERT

require 'tempfile'
require 'openssl'
require 'net/https'
require 'timeout'

port = 8043
http = Net::HTTP.new 'localhost', port
http.use_ssl      = true
http.ca_file      = Tempfile.new('foo').tap{ |f| f.write(cert); f.close }.path
http.verify_mode  = OpenSSL::SSL::VERIFY_PEER
http.open_timeout = 1
http.read_timeout = 2 # has no effect :(
#http.ssl_timeout  = 3 # has no effect :(

timeout(4) do # has no effect :(
  p http.start{ |h| h.request Net::HTTP::Post.new '/foo' }
end
