Sample code for 30+ languages & platforms
PHP Extension

Verify SSL Server Certificate

See more Socket/SSL/TLS Examples

Demonstrates how to connect to an SSL server and verify its SSL certificate.

Chilkat PHP Extension Downloads

PHP Extension
<?php

include("chilkat.php");

$success = false;

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

$socket = new CkSocket();

$ssl = true;
$maxWaitMillisec = 20000;

// The SSL server hostname may be an IP address, a domain name,
// or "localhost". 

$sslServerHost = 'www.paypal.com';
$sslServerPort = 443;

// Connect to the SSL server:
$success = $socket->Connect($sslServerHost,$sslServerPort,$ssl,$maxWaitMillisec);
if ($success == false) {
    print $socket->lastErrorText() . "\n";
    exit;
}

$cert = new CkCert();

$success = $socket->GetServerCert($cert);
if ($success != false) {

    print 'Server Certificate:' . "\n";
    print 'Distinguished Name: ' . $cert->subjectDN() . "\n";
    print 'Common Name: ' . $cert->subjectCN() . "\n";
    print 'Issuer Distinguished Name: ' . $cert->issuerDN() . "\n";
    print 'Issuer Common Name: ' . $cert->issuerCN() . "\n";

    $bExpired = $cert->get_Expired();
    $bRevoked = $cert->get_Revoked();
    $bSignatureVerified = $cert->get_SignatureVerified();
    $bTrustedRoot = $cert->get_TrustedRoot();

    print 'Expired: ' . $bExpired . "\n";
    print 'Revoked: ' . $bRevoked . "\n";
    print 'Signature Verified: ' . $bSignatureVerified . "\n";
    print 'Trusted Root: ' . $bTrustedRoot . "\n";

}

// Close the connection with the server
// Wait a max of 20 seconds (20000 millsec)
$success = $socket->Close(20000);

?>