Wednesday, March 11, 2009

fetchmail 新版的問題

(http://antbsd.twbbs.org/~ant/wordpress/?p=85, February 25th, 2006)

最近因為 fetchmail 的安全問題,所以升級至最新版,卻發現有用 ssl 協定取信的都會出現錯誤。

查了一下,發現是 fetchmail 6.3.0_1 版之後,支援 USE_OPENSSL 後,為了安全性,使用 ssl 收信時,伺服器主機的 ssl keys 必須對客戶端來說是合法的。

找了解決方法

首先找出伺服器上的 pem。假如伺服器是 antbsd.twbbs.org,則使用

# openssl s_client -connect antbsd.twbbs.org:995 -showcerts

會顯示出很多訊息,只需要複製這個區段(含 BEGIN 和 END)

-----BEGIN CERTIFICATE-----
MII[...]
—–END CERTIFICATE—–

在家目錄下建 .certs

# mkdir ~/.certs

建立任意名的 pem 檔(如 sinica.pem)

# vi ~/.certs/sinica.pem

檔案內容就是之前複製 BEGIN(含) 和 END(含) 的內容進去。
再執行

若使用 BSD 內建的 openssl
# perl /usr/src/crypto/openssl/tools/c_rehash ~/.certs
若使用 secuirty/openssl
# c_rehash ~/.certs

然後修改設定檔 (.fetchmailrc)。

options ssl sslcertpath /home/user/.certs sslcertck
sslfingerprint '<>‘

最後要找出 fingerprint。可以用這個指令查出

# fetchmail --logfile=log -vvv
# cat log

在對映的主機連線中,找出 fingerprint,再把資料填回 .fetchmailrc 中即可。

UPDATE 這裡有教 gmail 的 pop3 over ssl 設定。

No comments:

Post a Comment