(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