tls.Dial возвращает "слишком много двоеточий в адресе" - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь перебрать массив адресов и проверить их статус tls cert. Я собрал воедино программу из различных примеров, которые делают другие вещи.

Мой первый шаг в обработке -

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 Я нашел предложение, чтобы исправить это, используя скобки. Следующие 2 адреса в квадратных скобках возвращают no such host

Где моя ошибка?

1 Ответ

0 голосов
/ 15 мая 2018

Это должно быть имя домена, адрес IPv4 или IPv6 только с портом, а не URL.

conn, err := tls.Dial("tcp", "mail.google.com:443", &tls.Config{
    RootCAs: roots,
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...