PHP Fetch SSL Certificate
<?php $hostname = "blackboard.boisestate.edu"; $ssloptions = array( "capture_peer_cert" => true, "allow_self_signed"=>false, "CN_match"=>$hostname, "verify_peer"=>true, "SNI_enabled"=>true, "SNI_server_name"=>$hostname, "cafile"=>'/etc/ssl/certs/ca-certificates.crt' //mozilla ca cert bundle: http://curl.haxx.se/docs/caextract.html ); $ctx = stream_context_create( array("ssl" => $ssloptions) ); $result = stream_socket_client("ssl://$hostname:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $ctx); $cont = stream_context_get_params($result); openssl_x509_export($cont["options"]["ssl"]["peer_certificate"], $pem_encoded); //$cont["options"]["ssl"]["peer_certificate_chain"] echo $pem_encoded; ?>
output:
-----BEGIN CERTIFICATE----- MIIGYzCCBUugAwIBAgIQDQsHQ9qITxKbaYyXhi27TTANBgkqhkiG9w0BAQUFADBm MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 d3cuZGlnaWNlcnQuY29tMSUwIwYDVQQDExxEaWdpQ2VydCBIaWdoIEFzc3VyYW5j ZSBDQS0zMB4XDTEwMDEwNDAwMDAwMFoXDTEzMDUwNTIzNTk1OVowgZQxCzAJBgNV BAYTAlVTMQ4wDAYDVQQIEwVJZGFobzEOMAwGA1UEBxMFQm9pc2UxHzAdBgNVBAoT FkJvaXNlIFN0YXRlIFVuaXZlcnNpdHkxKTAnBgNVBAsTIE9mZmljZSBvZiBJbmZv cm1hdGlvbiBUZWNobm9sb2d5MRkwFwYDVQQDFBAqLmJvaXNlc3RhdGUuZWR1MIGf MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCZap/3GD5vu8rEemolAyWonrmZ2Nax Y0FdGMgtwZWOqXEEY3lceuu8nzmmZjeTzTTHtyVTL2wawc7p6Hv36HgQP7WoL9eS D5fZ2U0Xuv56o3gEki8qFAIXKcjME2T2rwGdK0/HAenfi97EToUXxuRqRl5GFu0H oHCHIlP7bky+kQIDAQABo4IDYDCCA1wwHwYDVR0jBBgwFoAUUOpzidsp+xCPnuUB INTeeZlIg/cwHQYDVR0OBBYEFGdRV4KJD9fpWwrWySq3HMM+E1KOMCsGA1UdEQQk MCKCDmJvaXNlc3RhdGUuZWR1ghAqLmJvaXNlc3RhdGUuZWR1MH8GCCsGAQUFBwEB BHMwcTAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEkGCCsG AQUFBzAChj1odHRwOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DQUNlcnRzL0RpZ2lDZXJ0 SGlnaEFzc3VyYW5jZUNBLTMuY3J0MA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8E AjAAMGUGA1UdHwReMFwwLKAqoCiGJmh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9j YTMtMjAxMGEuY3JsMCygKqAohiZodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vY2Ez LTIwMTBhLmNybDCCAcYGA1UdIASCAb0wggG5MIIBtQYLYIZIAYb9bAEDAAEwggGk MDoGCCsGAQUFBwIBFi5odHRwOi8vd3d3LmRpZ2ljZXJ0LmNvbS9zc2wtY3BzLXJl cG9zaXRvcnkuaHRtMIIBZAYIKwYBBQUHAgIwggFWHoIBUgBBAG4AeQAgAHUAcwBl ACAAbwBmACAAdABoAGkAcwAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAgAGMAbwBu AHMAdABpAHQAdQB0AGUAcwAgAGEAYwBjAGUAcAB0AGEAbgBjAGUAIABvAGYAIAB0 AGgAZQAgAEQAaQBnAGkAQwBlAHIAdAAgAEMAUAAvAEMAUABTACAAYQBuAGQAIAB0 AGgAZQAgAFIAZQBsAHkAaQBuAGcAIABQAGEAcgB0AHkAIABBAGcAcgBlAGUAbQBl AG4AdAAgAHcAaABpAGMAaAAgAGwAaQBtAGkAdAAgAGwAaQBhAGIAaQBsAGkAdAB5 ACAAYQBuAGQAIABhAHIAZQAgAGkAbgBjAG8AcgBwAG8AcgBhAHQAZQBkACAAaABl AHIAZQBpAG4AIABiAHkAIAByAGUAZgBlAHIAZQBuAGMAZQAuMB0GA1UdJQQWMBQG CCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOCAQEAtW/s0OoX4azB zk7PJOP6yXzAs4wUvTAeqv4ZSASFWwGWKNcsT/Kp3XNFX815fW3rQ3OFmqUgyhPP dgiHU9pV3O6NxiFrUAAw3xJqITsGBPNIYVRFxT+MyAFa7Zp3+slyTJ1mUwRBokK0 Ot7UwveDBOjAl3NRXsG/lXxzveSnz0cVnrrJ8Dp9KRSld0VL3SjSDNw2qjAiOaIb +Z8FGeNtfCQk9pztmSUwyj+at2GcTOKyzrbXDihkdjhj3XptN+cddCOyWc25hcph A4DBkwiKMT3CoFSNSa59gQuOAzvS7xL/ILuw+rs3trpEQ+Shslh9tov00hRU1vAQ Le2sawkdKg== -----END CERTIFICATE-----
code snippets are licensed under Creative Commons CC-By-SA 3.0 (unless otherwise specified)