|  | require 'openssl'
 | 
  
    |  | OK_CERT=<<EOF
 | 
  
    |  | -----BEGIN CERTIFICATE-----
 | 
  
    |  | MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV
 | 
  
    |  | BAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X
 | 
  
    |  | DTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ
 | 
  
    |  | BgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3
 | 
  
    |  | DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4
 | 
  
    |  | QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny
 | 
  
    |  | gQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw
 | 
  
    |  | zBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q
 | 
  
    |  | 130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2
 | 
  
    |  | JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw
 | 
  
    |  | DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw
 | 
  
    |  | ZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT
 | 
  
    |  | AkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj
 | 
  
    |  | AQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG
 | 
  
    |  | 9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h
 | 
  
    |  | bV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc
 | 
  
    |  | fca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu
 | 
  
    |  | HWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w
 | 
  
    |  | t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
 | 
  
    |  | WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
 | 
  
    |  | -----END CERTIFICATE-----
 | 
  
    |  | EOF
 | 
  
    |  | 
 | 
  
    |  | TROUBLE_CERT=<<EOF
 | 
  
    |  | -----BEGIN CERTIFICATE-----
 | 
  
    |  | MIIFhDCCA2ygAwIBAgIEGZ34eDANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJD
 | 
  
    |  | TjEqMCgGA1UEChMhV29TaWduIGVDb21tZXJjZSBTZXJ2aWNlcyBMaW1pdGVkMSow
 | 
  
    |  | KAYDVQQDEyFDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBvZiBXb1NpZ24wGhcLMDkw
 | 
  
    |  | ODA4MDEwMFoXCzI0MDgwODAxMDBaMF8xCzAJBgNVBAYTAkNOMSowKAYDVQQKEyFX
 | 
  
    |  | b1NpZ24gZUNvbW1lcmNlIFNlcnZpY2VzIExpbWl0ZWQxJDAiBgNVBAMTG1dvU2ln
 | 
  
    |  | biBDbGFzcyAzIE9WIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
 | 
  
    |  | AQoCggEBALyJvmFRU8grlnWzWtMONP5Kwp+jGIOirOMuXpN5CxNJXpOyj4QQ7ZGP
 | 
  
    |  | grqtZ98zG66E8lWwW/SznrzmBA8d7wRaqAvsEm1WGWRwSQ9XkvNfIaZNtNKWKzwy
 | 
  
    |  | s++PWQsUum6innHb8og/KDvszr5HrEXHip76YZPFSRe2Rrb3mRaMHG4xrmnO7cYk
 | 
  
    |  | knChy5bDbBbQ7sxPhjOzQeY9PdsOjDN0u8P8C6f80XHiwQzU97o+gJDUSOuig3DY
 | 
  
    |  | 2zAHKYn5gSEs/+tH9nptQ5ZnFz7z4nNRx3Ye6Ryg7BEasc8eLZxV7jvGLa7cZmWR
 | 
  
    |  | omacrILxpBe110ODw4igZN7KckXcOPsCAwEAAaOCAUQwggFAMBIGA1UdEwEB/wQI
 | 
  
    |  | MAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRiLoHZ40J5FKPN2VSK
 | 
  
    |  | bvjelaqPmDAfBgNVHSMEGDAWgBThZs8O0fGzS7cGIBT+hxLV9v77PjBjBggrBgEF
 | 
  
    |  | BQcBAQRXMFUwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLndvc2lnbi5jb20vY2Ew
 | 
  
    |  | LAYIKwYBBQUHMAKGIGh0dHA6Ly9haWEud29zaWduLmNvbS93b3NpZ24uY2VyMC4G
 | 
  
    |  | A1UdHwQnMCUwI6AhoB+GHWh0dHA6Ly9jcmxzLndvc2lnbi5jb20vY2EuY3JsMEUG
 | 
  
    |  | A1UdIAQ+MDwwOgYLKwYBBAGCm1EBAQAwKzApBggrBgEFBQcCARYdaHR0cDovL3d3
 | 
  
    |  | dy53b3NpZ24uY29tL3BvbGljeS8wDQYJKoZIhvcNAQEFBQADggIBADJ0W6AuSYNd
 | 
  
    |  | K1VEcVF9MEubDGroV4eZ5Lpk3yjLKVls7NaSkmC7C6lIFxjzt5yIDfx3Q4Dklu4c
 | 
  
    |  | Fj1RqbDXZ/UKeEzcMo1NWH1qhCJZ1hDJSJEcuuBQj/fM+H7L4T/pgSeZNo/d8GgN
 | 
  
    |  | PkYWKpyA8V2zaFkEeJqkFZkVNub0j9N9HKUx3Z7eHoGATMBoxbsTRj1Z9Tcx14Kn
 | 
  
    |  | K7aHJ0frHUgCqU99roC0/0Tlc7qla5H/PZzU0iWp6rIjvDsJsFFxwIFppleLPtK4
 | 
  
    |  | Bs3Ggq12vxF7V2hjcka6+U6FNULigwc8DgK+qoxjrsGJziNXX3mHGFNxFWlGXKoK
 | 
  
    |  | DRJPG1hcL/sw60t+MWGAiKdEdexKQLn9/SaeNcroXJ79/CZyV+KHGCXOBDkND2n6
 | 
  
    |  | 5TOGnYMxjBK44iZKCRRP3DHeK58SJVmL0wK6XNkgxnJFuHwMWiYvEIH0qE+SdyHA
 | 
  
    |  | tv3RPTJfvPYW1Tmw1r8SrNJWBpUtVEneIydsNGcsM2T7r7cjvyfd795HmrEizRzI
 | 
  
    |  | v9a22yXkpc9iDg3oujumANNoVWZduAW9z4D055lqFm4h8XnY5bclVb0XVKn4Nzxa
 | 
  
    |  | CUz953Ga2R2DsM3MUFZrr54URyN56GdC9UQBuM1SWf53T0MAFdg60TToSdy/GyMc
 | 
  
    |  | 3j2MXP7WCHav4dl5dXDC7iKN+1TEcSLX
 | 
  
    |  | -----END CERTIFICATE-----
 | 
  
    |  | EOF
 | 
  
    |  | 
 | 
  
    |  | def perform_cert( cert )
 | 
  
    |  |   #
 | 
  
    |  |   # Show that openSSL can read cert and display starting date
 | 
  
    |  |   #
 | 
  
    |  |   puts `echo "#{cert}" | openssl x509 -noout -text`
 | 
  
    |  |   #
 | 
  
    |  |   # Now create a cert with same data, not_before will throw
 | 
  
    |  |   # an exception and fail on the TROUBLE_CERT
 | 
  
    |  |   c = OpenSSL::X509::Certificate.new(cert)
 | 
  
    |  |   puts c.not_before
 | 
  
    |  |   puts "-----------------------"
 | 
  
    |  | end
 | 
  
    |  | 
 | 
  
    |  |   perform_cert(OK_CERT)
 | 
  
    |  |   perform_cert(TROUBLE_CERT)
 |