#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