我在 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 bug 的影響)。
看起來如果不解決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 監獄,但這可能不起作用。
請記住,下面的設定並沒有真正與您的「正常」作業系統分開,這樣做可能會弄亂事情。使用風險自負,不提供保固。
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