如何将 PFX 证书文件安装到 Ubuntu 中以便 Curl 信任它?

Luk*_*ett 6 ubuntu ssl-certificate curl ubuntu-18.04

我正在 Linux 2 的 Windows 子系统上运行 Ubuntu 18.04。我正在curl使用自签名证书向在 Windows 端运行的 Web 服务发出请求。我收到此错误:

curl: (60) SSL 证书问题:无法获取本地颁发者证书

我想将证书添加到本地商店。我有一个.pfx可用的文件。我知道我可以使用-k,但我想针对该服务器使用其他命令行工具。

我该怎么做呢?

我自己的尝试

openssl s_client -showcerts -servername server -connect server:443 > foo.pem
openssl x509 -in foo.pem -inform PEM -out foo.crt
sudo cp foo.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
Run Code Online (Sandbox Code Playgroud)

这看起来似乎有道理,但没有用,curl仍然有同样的抱怨。

我也尝试过使用一个DER版本。

sudo rm /usr/local/share/ca-certificates/windows_cert.crt
openssl x509 -in windows_cert.pem -inform PEM -out windows_cert_der.crt -outform DER
sudo cp windows_cert_der.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
Run Code Online (Sandbox Code Playgroud)

放弃

别担心,我开始关注这里的一些回复。

https://askubuntu.com/questions/73287/how-do-i-install-a-root-certificate

但毫无进展,这显然是计算领域的一个非常困难的问题。

我发现几个月前他们在我需要使用的命令行工具中添加了一个开关,可以忽略证书问题。

har*_*llb 3

您可以使用该openssl命令将几乎任何证书格式转换为另一种证书格式。PFX 是 pkcs12 容器的另一个名称。

如果您可以提取 PEM 格式的证书,curl 应该能够使用它。

openssl pkcs12 -in cert.pfx -clcerts -out cert.pem
Run Code Online (Sandbox Code Playgroud)

这可能会要求您输入密码,该密码将用于保护 PKCS12 文件

您想要使用cert.pem带有--cacertcurl命令行选项的输出文件而不是-k

  • 我真的不知道我的意思,我不知道证书,我只是希望在 Ubuntu 上运行的工具能够使用自签名证书信任我的开发 HTTPS 网站。我真的不在乎它是如何完成的,我只需要恢复我的生活。 (3认同)