当前位置: 首页 > 知识库问答 >
问题:

WSL-Docker: 卷发: (60) SSL 证书问题: 无法获取本地颁发者证书

汪思博
2023-03-14

在PC重新配置后,我无法正确使用Docker,因为一些curl命令由于SSL/TLS问题而被拒绝。

仅在一个示例中,卷曲 -vfsSL https://apt.releases.hashicorp.com/gpg 返回以下错误:

*   Trying 52.222.214.125:443...
* TCP_NODELAY set
* Connected to apt.releases.hashicorp.com (52.222.214.125) 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.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (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

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

经过一些挖掘,我现在知道这个问题也发生在我的WSL映像中,但不在主机Windows操作系统上。因此,我认为这一定是源于我的WSL设置的问题,而不是Docker本身造成的(?)。

在StackOverflow上有很多相关的问题,但是我没有找到真正适用于这种情况的解决方案(并且它不是禁用验证的选项,这是一个非常常见的建议解决方案):

    < li >无法使用具有自签名证书的Windows上的git解决“无法获取本地颁发者证书”的问题 < li>curl: (60) SSL证书问题:无法获取本地颁发者证书 < li>PayPal IPN:无法获取本地发行人证书

FWIW,我在一家企业工作,使用信息技术发布的操作系统。显然,这可能是错误的来源,但他们无法帮助我调试这个问题。然而,一个同事的电脑工作得完美无缺。

有什么想法吗?

电脑设置:

  • Windows 10企业版
    • 版本:21H1
    • 操作系统构建:19043.1645
    • Windows功能体验包:120.2212.4170.0

共有1个答案

梁丘成和
2023-03-14

我在我的公司也遇到了类似的问题。问题是我们的防火墙替换了证书。防火墙的证书在我的wsl设置中不受信任/未知。

我通过从 Windows certmanager (certmgr.msc) 导出防火墙证书解决了这个问题。

证书位于“受信任的根证书颁发机构\证书”

将证书导出为DER编码x.509,并将其保存在“D:\eset.cer”下。

在 WSL 中,可以使用以下命令添加证书:

openssl x509 -inform DER -in /mnt/d/eset.cer -out ./eset.crt
sudo cp eset.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
 类似资料:
  • 问题内容: 我在本地开发环境上使用WAMP,并尝试从信用卡中扣款,但收到错误消息: cURL错误60:SSL证书问题:无法获取本地颁发者证书 我在Google上进行了很多搜索,很多人建议我下载此文件:cacert.pem,将其放在某个位置,然后在php.ini中引用它。这是我的php.ini中的部分: 但是,即使多次重新启动服务器并更改了路径后,我仍然收到相同的错误消息。 我使用来自Apache模

  • 我在Google上搜索了很多,很多人建议我下载这个文件:cacert.pem,把它放在某个地方,并在我的php.ini中引用它。这是我的php.ini中的部分: 然而,即使在重新启动服务器几次并更改路径后,我也会得到相同的错误消息。 我使用Apache模块中的WAMP并启用ssl_module。在PGP扩展中,我启用了php_curl。 这是我正在运行的代码:

  • 我有一个问题...我在Gitlab中的代码,Azure运营模式下的管道。我使用经典编辑器。当我启动管道时,我有错误"致命:无法访问'致命:无法访问'https://my.repos.example:***. git/': SSL证书问题:无法获得本地颁发者证书"请帮帮我!

  • 我正在尝试使用< code>Amazon SDK for php,从运行< code>AppServ 2.5.10(包括< code>Apache 2.2.8 、< code>php 5.2.6 、< code>mysql 5.0.51b和< code>phpMyAdmin 2.10.3)的(localhost) Windows 8机器上连接亚马逊的S3文件。 为了兼容< code>Amazon

  • 我使用MAMP作为本地开发环境。我想实现一个谷歌认证-但不断得到这个SSL错误。 < li >正如其他SO主题所建议的,我已经在我的PHP.ini文件中添加了这行代码: 知道如何在我的本地环境中传递这个SSL错误吗? 这是代码: