tls.Dial返回“地址中的冒号太多”

时间:2018-05-15 10:04:12

标签: go

我正在尝试遍历一组地址,并检查他们的tls证书状态。我拼凑了一个程序来自各种其他事情的例子。

我处理的第一步是

conn, err := tls.Dial("tcp", url, nil)

从数组传入'url'(我导入crypto/tls)。在我继续提取证书之前,我检查错误:

if err != nil { 
    log.Printf("Unable to get %q - %s\n", url, err)
    return
}

这是一个数组的片段(目前只有测试地址):

var urls = []string{
    "https://google.com:443",
    "https://expired.badssl.com:443",
    "[https://wrong.host.badssl.com]:443",
    "[https://self-signed.badssl.com]:443"
}

前2回too many colons in address 我发现了一个使用括号来修复它的建议。接下来的两个地址(括号)将返回no such host

我的错误在哪里?

1 个答案:

答案 0 :(得分:4)

应该是只有端口的域名,IPv4或IPv6地址,而不是URL。

conn, err := tls.Dial("tcp", "mail.google.com:443", &tls.Config{
    RootCAs: roots,
})