Sample code for 30+ languages & platforms
Go

Verify SSL Server Certificate

See more Socket/SSL/TLS Examples

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

Chilkat Go Downloads

Go
    success := false

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

    socket := chilkat.NewSocket()

    ssl := true
    maxWaitMillisec := 20000

    // The SSL server hostname may be an IP address, a domain name,
    // or "localhost". 
    var sslServerHost string
    sslServerHost = "www.paypal.com"
    sslServerPort := 443

    // Connect to the SSL server:
    success = socket.Connect(sslServerHost,sslServerPort,ssl,maxWaitMillisec)
    if success == false {
        fmt.Println(socket.LastErrorText())
        socket.DisposeSocket()
        return
    }

    cert := chilkat.NewCert()

    var bExpired bool
    var bRevoked bool
    var bSignatureVerified bool
    var bTrustedRoot bool

    success = socket.GetServerCert(cert)
    if success != false {

        fmt.Println("Server Certificate:")
        fmt.Println("Distinguished Name: ", cert.SubjectDN())
        fmt.Println("Common Name: ", cert.SubjectCN())
        fmt.Println("Issuer Distinguished Name: ", cert.IssuerDN())
        fmt.Println("Issuer Common Name: ", cert.IssuerCN())

        bExpired = cert.Expired()
        bRevoked = cert.Revoked()
        bSignatureVerified = cert.SignatureVerified()
        bTrustedRoot = cert.TrustedRoot()

        fmt.Println("Expired: ", bExpired)
        fmt.Println("Revoked: ", bRevoked)
        fmt.Println("Signature Verified: ", bSignatureVerified)
        fmt.Println("Trusted Root: ", bTrustedRoot)

    }

    // Close the connection with the server
    // Wait a max of 20 seconds (20000 millsec)
    success = socket.Close(20000)

    socket.DisposeSocket()
    cert.DisposeCert()