简介
目前,很多网站都使用了https,证书的过期检查也是运维需要关注的地方,可以通过直接连接域名,获取证书信息,来判断是否已经更新了证书。

代码
package main
import (
"crypto/tls"
"fmt"
"net"
"os"
"time"
)
func main() {
args := os.Args
usage := os.Args[0] + " [domain|ip]"
if len(args) < 2 {
fmt.Println(usage)
os.Exit(0)
}
conn, err := tls.DialWithDialer(&net.Dialer{
Timeout: time.Second * 5,
Deadline: time.Now().Add(time.Second * 9),
}, "tcp", args[1], &tls. Config {
InsecureSkipVerify: true,
})
if err != nil {
fmt.Println(err)
os.Exit(3)
}
defer conn. Close ()
stats := conn.ConnectionState()
certs := stats.PeerCertificates
for i := range certs {
fmt.Println(certs[i].DNSNames, certs[i].IPAddresses, certs[i].NotBefore, certs[i].NotAfter, certs[i].IsCA)
}
}

总结
替换证书虽然很简单,当时就怕遗漏,出现故障影响可就大了!
