我正在尝试遍历一组地址,并检查他们的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
我的错误在哪里?
答案 0 :(得分:4)
应该是只有端口的域名,IPv4或IPv6地址,而不是URL。
conn, err := tls.Dial("tcp", "mail.google.com:443", &tls.Config{
RootCAs: roots,
})