2012-02-10 54 views

回答

113

在這裏看看目前的哈克解決方案,我覺得我必須描述一個合適的解決方案。

首先,您需要通過Cygwin的setup.exe安裝cygwin軟件包ca-certificates以獲取證書。

不要使用捲曲或類似的黑客來下載證書(作爲鄰居的答案建議),因爲從根本上不安全,可能會危及系統。

其次,您需要告訴wget您的證書所在的位置,因爲它在Cygwin環境中默認沒有選擇它們。如果可以通過命令行參數--ca-directory=/usr/ssl/certs(最適合shell腳本)或將ca_directory = /usr/ssl/certs添加到~/.wgetrc文件來完成此操作。

您也可以通過運行ln -sT /usr/ssl /etc/ssl來解決這個問題,正如在另一個答案中指出的那樣,但只有在您具有對系統的管理訪問權時纔會起作用我描述的其他解決方案並不需要這樣做。

+7

謝謝 - 這真的是正確的方法(TM)爲Cygwin做到這一點。 – David 2013-05-16 15:44:01

+4

感謝您的回答,特別是關於〜/ .wgetrc文件的提醒。作爲一個MacPorts用戶,我的證書位於/ opt/local/etc/openssl,這是我希望有人發現的一個事實。 – 2015-04-09 19:22:13

+3

對於fink,它們位於/sw/etc/ssl/certs/ca-bundle.crt中,作爲'ca-bundle'軟件包的一部分 - 如[這裏]所述(https://finkers.wordpress .COM/2009/10/06/wget的和 - HTTPS /)。 – jhfrontz 2015-10-22 22:15:45

13

首先,SSL證書需要安裝。說明(基於https://stackoverflow.com/a/4454754/278488):

pushd /usr/ssl/certs 
curl http://curl.haxx.se/ca/cacert.pem | awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}' 
c_rehash 

以上是不足以解決curl,但wget需要一個額外的符號鏈接:

ln -sT /usr/ssl /etc/ssl 
+3

這不是沒有安全感,從隨機網站上安裝根證書頒發機構,特別是在名稱haxx? – Chloe 2012-06-29 02:04:17

+6

@Chloe curl.haxx.se是cURL的開發網站。很值得信賴的人。 – ylluminate 2012-07-18 17:39:44

+0

你如何解決它沒有捲曲? – 2012-09-19 20:41:14

79

如果問題是一個已知的根CA丟失,當你正在使用Ubuntu或Debian,那麼你可以用這一行解決問題:

sudo apt-get install ca-certificates 
+3

謝謝,這固定了我的'wget'證書問題。 – 2012-12-16 06:10:11

+0

工作過,謝謝! – alexkb 2013-05-29 12:57:33

+1

apt-get在cygwin上? apt-get在redgat上? ;) – 2014-06-02 12:30:59

209

如果你不關心檢查有效性的證書只需在wget命令行中添加--no-check-certificate選項。這對我很好。

注意:這會使您遇到man-in-the-middle(MitM)攻擊,並且不推薦用於您關心安全性的任何事情。

+4

正是我在找的 - 謝謝。 – 2013-05-08 20:55:33

+2

謝謝,這很好用 – 2013-06-26 06:30:05

+8

這真的應該有一個更明顯的免責聲明,爲什麼這幾乎總是一個壞主意。 – 2015-07-07 09:44:46

-4

如果您使用的是Windows,只需進入控制面板,點擊自動更新,然後點擊Windows Update網站鏈接。只要按照步驟。至少這對我來說很有效,沒有更多的證書問題,就像我以前一樣去https://www.dropbox.com

+0

這與Cygwin無關 – Synthead 2016-03-08 20:22:14

-1

只是做

apt-get install ca-certificate 
1
​​

s使其中的差別;)

相關問題