登录
首页 >  Golang >  Go问答

SSL/TLS 令牌有效期错误

来源:stackoverflow

时间:2024-03-12 18:51:14 436浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《SSL/TLS 令牌有效期错误》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

我试图构建一个函数来获取证书信息。当使用带有“www”的顶级域时,每个人都可以正常工作,但是当排除该顶级域或查询第三级域时,它会提供不正确的“不晚于”和“不早于”日期。

我想知道是否有人有补救措施或建议。谢谢!

package main

import (
    "crypto/tls"
    "fmt"
    "log"
)

func main() {

    conf := &tls.Config{
        InsecureSkipVerify: true,
    }

    conn, err := tls.Dial("tcp", "www.google.com:443", conf)
    if err != nil {
        log.Println("Error when Dialing", err)
        return
    }

    defer conn.Close()

    certs := conn.ConnectionState().PeerCertificates

    for _, cert := range certs {
        fmt.Printf("FQDNs: %s\n\n", cert.DNSNames)
        fmt.Printf("Issuer Name: %s\n\n", cert.Issuer)
        fmt.Printf("Issued: %v\n\n", cert.NotBefore.Format("Jan 2, 2006 3:04 PM"))
        fmt.Printf("Expires: %s\n\n", cert.NotAfter.Format("Jan 2, 2006 3:04 PM"))
        fmt.Printf("Issuer Common Name: %s\n\n", cert.Issuer.CommonName)
        fmt.Println("-----------------------------------------")
    }
}

正确答案


func main() {

    address := "google.com"
    conn, err := tls.Dial("tcp", address+":443", nil)
    if err != nil {
        panic("Server doesn't support SSL certificate err: " + err.Error())
    }

    err = conn.VerifyHostname(address)
    if err != nil {
        panic("Hostname doesn't match with certificate: " + err.Error())
    }
    certs := conn.ConnectionState().PeerCertificates

    for _, cert := range certs {
        fmt.Printf("FQDNs: %s\n\n", cert.DNSNames)
        fmt.Printf("Issuer Name: %s\n\n", cert.Issuer)
        fmt.Printf("Issued: %v\n\n", cert.NotBefore.Format("Jan 2, 2006 3:04 PM"))
        fmt.Printf("Expires: %s\n\n", cert.NotAfter.Format("Jan 2, 2006 3:04 PM"))
        fmt.Printf("Issuer Common Name: %s\n\n", cert.Issuer.CommonName)
        fmt.Println("-----------------------------------------")
    }
    
}

以上就是《SSL/TLS 令牌有效期错误》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>