如何使用户安装的 rpm 避免 curl SSL 错误?

如何使用户安装的 rpm 避免 curl SSL 错误?

我正在尝试从 anaconda kickstart(CentOS7)阶段直接从 URL 安装 RPM,%post但是遇到了一个有趣的错误:

``` + rpm -Uvhhttps://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm curl:(60)Peer 的证书颁发者已被用户标记为不信任。更多详细信息请参见此处:http://curl.haxx.se/docs/sslcerts.html

curl 默认使用证书颁发机构 (CA) 公钥 (CA 证书) 的“捆绑包”执行 SSL 证书验证。如果默认捆绑包文件不够用,您可以使用 --cacert 选项指定备用文件。如果此 HTTPS 服务器使用捆绑包中代表的 CA 签名的证书,则证书验证可能由于证书问题而失败(证书可能已过期,或者名称可能与 URL 中的域名不匹配)。如果您想关闭 curl 的证书验证,请使用 -k(或 --insecure)选项。错误:跳过https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm— 传输失败 ```

系统重启后运行相同的命令效果很好,但在发布后它会失败,并且与具有参数的 curl 相反-k,我发现没有可以提供给 rpm 的选项。

这更加奇怪,因为这个地址无论如何都不应该有无效的 SSL 证书。

我知道我可以将其分成两个命令,一个 curl 下载文件,另一个 curl 安装 rpm。

不过,我正在寻找一个更好的解决方案,一行一个。

更新

epel-release我的第一次尝试是在包列表中添加它,但是这引发了错误:

You have specified that the package 'epel-release' should be installed.  This
package does not exist.  Would you like to ignore this package and continue with
installation?

Please respond 'yes' or 'no':

答案1

这些 SSL 错误是由于 http_proxy 环境变量的存在导致 rpm 使用代理而引起的。

一旦我安装了自定义 CA 证书,这个问题就解决了。

相关内容