Unicode C++
Unicode C++
Verify SSL Server Certificate
See more Socket/SSL/TLS Examples
Demonstrates how to connect to an SSL server and verify its SSL certificate.Chilkat Unicode C++ Downloads
#include <CkSocketW.h>
#include <CkCertW.h>
void ChilkatSample(void)
{
bool success = false;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkSocketW socket;
bool ssl = true;
int maxWaitMillisec = 20000;
// The SSL server hostname may be an IP address, a domain name,
// or "localhost".
const wchar_t *sslServerHost = 0;
sslServerHost = L"www.paypal.com";
int sslServerPort = 443;
// Connect to the SSL server:
success = socket.Connect(sslServerHost,sslServerPort,ssl,maxWaitMillisec);
if (success == false) {
wprintf(L"%s\n",socket.lastErrorText());
return;
}
CkCertW cert;
bool bExpired;
bool bRevoked;
bool bSignatureVerified;
bool bTrustedRoot;
success = socket.GetServerCert(cert);
if (success != false) {
wprintf(L"Server Certificate:\n");
wprintf(L"Distinguished Name: %s\n",cert.subjectDN());
wprintf(L"Common Name: %s\n",cert.subjectCN());
wprintf(L"Issuer Distinguished Name: %s\n",cert.issuerDN());
wprintf(L"Issuer Common Name: %s\n",cert.issuerCN());
bExpired = cert.get_Expired();
bRevoked = cert.get_Revoked();
bSignatureVerified = cert.get_SignatureVerified();
bTrustedRoot = cert.get_TrustedRoot();
wprintf(L"Expired: %d\n",bExpired);
wprintf(L"Revoked: %d\n",bRevoked);
wprintf(L"Signature Verified: %d\n",bSignatureVerified);
wprintf(L"Trusted Root: %d\n",bTrustedRoot);
}
// Close the connection with the server
// Wait a max of 20 seconds (20000 millsec)
success = socket.Close(20000);
}