天天看點

Golang:https證書有效期檢測

原理:使用go提供的子產品

crypto/tls

,可以擷取域名證書的資訊,通過到期時間可以判斷證書是否過期

package main

import (
    "crypto/tls"
    "fmt"
)

func main() {
    conn, _ := tls.Dial("tcp", "www.baidu.com:443", nil)
    cert := conn.ConnectionState().PeerCertificates[0]

    // 時間資訊
    fmt.Printf("NotBefore: %v\n", cert.NotBefore)
    // NotBefore: 2022-07-05 05:16:02 +0000 UTC

    fmt.Printf("NotAfter: %v\n", cert.NotAfter)
    // NotAfter: 2023-08-06 05:16:01 +0000 UTC

    // 其他資訊
    fmt.Printf("IPAddresses: %v\n", cert.IPAddresses)
    fmt.Printf("Version: %v\n", cert.Version)
    fmt.Printf("SerialNumber: %v\n", cert.SerialNumber)
    fmt.Printf("Issuer: %v\n", cert.Issuer)
    fmt.Printf("Subject: %v\n", cert.Subject)
}

           

繼續閱讀