在免費SSL證書更新報告發現錯誤,可以用本文的辦法解決,官方技術翻譯
故障現象:
Nonce is empty. Exiting. dig output of acme-v01.api.letsencrypt.org
When creating a certificate, if you get the error:
Getting challenge for server.yourhost.com from acme-server...
Nonce is empty. Exiting. dig output of acme-v01.api.letsencrypt.org:
api.letsencrypt.org.edgekey.net.
e981.dscb.akamaiedge.net.
1.2.3.4
Full nonce request output:
報告顯示這可能是由于
"FULL_NONCE="`${CURL} ${CURL_OPTIONS} --silent -I ${API}/directory`": /usr/local/bin/curl --connect-timeout 15 -k -I https://acme-v01.api.letsencrypt.org/directory
引發錯誤
curl: (43) CURLOPT_SSL_VERIFYHOST no longer supports 1 as value!
這可能意味著您的curl版本比較舊,應該進行更新。 您可以使用custombuild做到這一點:
cd /usr/local/directadmin/custombuild
./build update
./build curl
由于類似的報告與針對基于RPM的curl庫的CustomBuild curl鏈接有關,例如:
[root@server scripts]# /usr/local/bin/curl --connect-timeout 15 -k -I https://acme-v01.api.letsencrypt.org/directory
curl: (48) An unknown option was passed in to libcurl
[root@server scripts]# ldd /usr/local/bin/curl | grep curl
libcurl.so.4 => /lib64/libcurl.so.4 (0x00007fdd1411a000)
where it should be /usr/local/lib/libcurl.so.4.
為了解決這個問題,remove the libcurl-devel rpm, re-compile curl and run ldconfig
rpm -e libcurl-devel
cd /usr/local/directadmin/custombuild
./build curl
ldconfig
并確認:
[root@server custombuild]# ldd /usr/local/bin/curl | grep curl
libcurl.so.4 => /usr/local/lib/libcurl.so.4 (0x00007f17c3cd5000)
Edit
/etc/ld.so.conf
并更改路徑的順序,因此/usr/local/lib更高,因此文件如下所示:
/usr/local/lib/
include /etc/ld.so.conf.d/*.conf
保存,然后運行
ldconfig
我們尚未對此進行測試,因為它可能會影響系統二進制文件使用的庫。 在注銷當前ssh會話之前,請確保對所有內容進行全面測試,尤其是sshd(重新啟動sshd
服務器并測試登錄名)。