![CentOS 5.7 上的 Curl SSL 验证问题(绕过不起作用)](https://linux22.com/image/718239/CentOS%205.7%20%E4%B8%8A%E7%9A%84%20Curl%20SSL%20%E9%AA%8C%E8%AF%81%E9%97%AE%E9%A2%98%EF%BC%88%E7%BB%95%E8%BF%87%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%EF%BC%89.png)
我在 CentOS 5.7 服务器上尝试通过安装 SSL 证书GitHub 脚本。
首先,当我执行时,我得到curl error 60
,如果我设置insecure
,~/.curlrc
那么我仍然得到curl error 35
。
我也尝试过从更新,ca-bundle.crt
但是http://curl.haxx.se/ca/cacert.pem
并没有解决任何问题,仍然是同样的错误。
我还查看了我们是否有 openSSL_0.9.8e 的更新,但没有更新(我发现 fedora 档案中有 1.0,但它受到 heartbleed 漏洞的影响)。
看来,如果不解决 curl https 验证,脚本就无法运行。
我无法升级或迁移到 Centos 6 或更高版本,因为自定义服务无法在更高版本上运行并且开发目前处于暂停状态。
答案1
CentOS 5 不支持 TLSv1.1 或 TLSv1.2
您的同伴可能禁用了协议版本 TLSv1。在 CentOS/RHEL 5(已于 2017 年 3 月 31 日停止使用)上,OpenSSL 和 curl 将无法使用 TLSv1.1 或 TLSv1.2,因此您有升级 openssl 和 curl。然而,在 CentOS/RHEL 5 上无法以合理的方式完成此操作。
过时的操作系统
您使用的操作系统自 2014 年 4 月 CentOS 5.8 发布以来就已过时。如果您确实无法升级到 CentOS 6,则应交叉升级到具有扩展生命周期支持的 RHEL 5。但是,如果问题与 TLS 版本有关,这将无法解决您的问题。
答案2
一个不太好用的解决方法是使用虚拟机通过绑定挂载到 /etc/letsencrypt 来获取 letsencrypt 证书。然后每次需要更新证书时只需运行虚拟机,这样您就可以生成证书。
您可能可以使用其中有不同操作系统的 chroot jail,但这可能不起作用。
请记住,下面的设置实际上与您的“正常”操作系统没有区别,这样做可能会弄乱一切。使用风险自负,不提供任何保证。
mkdir /mnt/chroot
cd /mnt/chroot
rpm --rebuilddb --root=/mnt/chroot
wget https://mirror.centos.org/centos/6/os/x86_64/Packages/centos-release-6-9.el6.12.3.x86_64.rpm
rpm -i --root=/mnt/chroot --nodeps centos-release-6-9.el6.12.3.x86_64.rpm
yum --installroot=/mnt/chroot install -y rpm-build yum
chroot /mnt/chroot /bin/bash -l
yum install curl