Предупреждение TLS-запроса Curl, неизвестный центр сертификации в Windows WSL

#ssl #curl #windows-subsystem-for-linux #tls1.2

Вопрос:

Выполнение этой команды в windows wsl 2 обеспечивает вывод, приведенный ниже. Может ли кто-нибудь объяснить, почему существуют смешанные TLSv1.3 и TLSv1.2, ВХОДЯЩИЕ и исходящие, и является ли это потенциальной причиной того, почему он не может получить сертификат локального эмитента. Хост-ОС Windows является корпоративной

Я установил сертификаты ca и запустил обновление сертификатов ca

 curl -v https://google.com:443/
* Trying 172.217.169.78...
* TCP_NODELAY set
* Connected to google.com (172.217.169.78) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS alert, unknown CA (560):
* SSL certificate problem: unable to get local issuer certificate
* Closing connection 0
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.haxx.se/docs/sslcerts.html
 

Ответ №1:

Используете ли вы сетевое подключение, подлежащее мониторингу или «защите», такое как антивирус, например, предоставляемый бизнесом, организацией или школой? Если это так, вы, вероятно, получаете поддельный сертификат/цепочку от перехватчика.

Попробуйте openssl s_client -connect google.com:443 взглянуть на строки s: и i: под Certificate chain ними . (Многие хосты сегодня требуют, чтобы SNI отвечал правильно, и если ваш OpenSSL ниже 1.1.1, вам нужно добавить -servername x , чтобы предоставить SNI, но google не входит в их число, и в любом случае, поскольку ваш curl, по крайней мере, пытается 1.3, он не может быть OpenSSL ниже 1.1.1.)

Или, если подключение из Chrome, Edge или IE (но, возможно, не Firefox) в Windows хоста работает нормально, дважды щелкните замок и посмотрите на цепочку сертификатов, чтобы увидеть, приведет ли это к корневому CA GlobalSign (как это делает настоящий Google) или к чему-то еще (например, BlueCoat); если последнее, корневой сертификат перехватчика установлен в вашем магазине Windows на хосте, но не в системе WSL. Вы можете экспортировать сертификат из браузера хоста и поместить его в файл и либо использовать его вручную curl --cacert $file , либо импортировать в хранилище доверия системы WSL , но это зависит от того, в какой системе вы работаете в WSL, о которой вы не сказали.

Добавлено: сочетание TLS 1.3 и 1.2 в информации о регистрации, вероятно, связано с тем, что 1.3 использует ту же версию заголовка записи, что и 1.2, в качестве взлома перехода, с расширением, указывающим, что на самом деле это 1.3 только в двух сообщениях Привет, и обратный вызов, вероятно, не имеет к этому отношения.

Комментарии:

1. да, это подключение к бизнес — сети, которое контролируется. Использование Windows 10 Enterprise