Unable to locally verify the issuer’s authority. To connect to … insecurely, use `–no-check-certificate’.

從舊主機移機到新主機的過程中發現有些 crontab 裡的腳本不動了,檢查後發現「Unable to locally verify the issuer’s authority.」的錯誤,這邊文章把解決的方法記下來。

小蛙在新主機上使用 wget 的時候發現沒辦法正常使用,會出現以下訊息

root@vultr:~# wget https://www.google.com.tw/

ERROR: cannot verify www.goog.com.tw's certificate, issued by ‘....’:
  Unable to locally verify the issuer's authority.
To connect to www.google.com.tw insecurely, use `--no-check-certificate'.

試了 wget --no-check-certificate 之後的確可以存取了,不過有些也有用到 wget 的套件內容就沒辦法這樣處理了,必須從根本上解決。例如:使用到 file_get_contentssimple_html_dom 也沒辦法使用

Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed in simple_html_dom.php on line 82

Warning: file_get_contents(): Failed to enable crypto in simple_html_dom.php on line 82

Warning: file_get_contents(https://xxx...): failed to open stream: operation failed in simple_html_dom.php on line 82

Fatal error: Uncaught Error: Call to a member function find() on bool in parseC.php:106
Stack trace:
#0 {main}
  thrown in parseC.php on line 106

serverfault.com 查到以下這個方法:

  1. 下載 ca-certificates
    sudo apt install ca-certificates
  2. 編輯使用 wget 的時候使用的設定檔
    sudo vim /etc/wgetrc
  3. 在檔案最下面加入
    ca_directory=/etc/ssl/certs

打完收工,再試一次 wget 不會再噴錯了,留給有需要的人(感謝 Jared 大大,參考自:Why wget doesn’t verify SSL certificates? @ serverfault.com

AL9nZEVYOgASjox YUPIXuSmQilPYAIyB2dNKAFDKL J0IqvcQx2 6byc1IWjJGKjOh7e cE5tfccTIjmbQZkqVjN7EI4ynXcvokcUPyAZ1I SI0SgrPCaV0yQJC46o2xi4MybayAoc13d1WDCzMoe5y3V45=w1457 h1024 no?authuser=2 Unable to locally verify the issuer's authority. To connect to ... insecurely, use `--no-check-certificate'.

    發佈留言

    發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

    這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料