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)
|