2010-02-23 51 views
2

我正在使用M2Crypto 0.20.2和python 2.4.3。我使用完全限定的域名連接到服務器。服務器證書中的通用名稱不使用FQDN,所以我得到這個錯誤:M2Crypto:覆蓋HostName的郵件連接檢查

M2Crypto.SSL.Checker.WrongHost: Peer certificate commonName does not match host

如何覆蓋主機名的連接柱檢查?

謝謝!

+0

應該提到這是我認爲應該做的伎倆行: SSL.Connection.clientPostConnectionCheck =無 任何人都可以驗證? 當我使用該行時,我的'wronghost'錯誤消失。但是當我試圖對服務器進行xmlrpc調用時,我的腳本中可能會出現更多錯誤。 – Becky 2010-02-23 18:47:09

回答

2

設置SSL.Connection.clientPostConnectionCheck = None會繞過WrongHost檢查,但它也會繞過許多您可能不希望繞過的其他檢查(例如檢查是否有任何證書)。我建議使用try/except組合來捕獲WrongHost,因爲在連接函數結束之前沒有其他任何事情被檢查或執行。

換句話說,沒有什麼是百廢待興(只要我能在源見)由剛捕獲該異常,因此,我說,這是比使用

SSL.Connection.clientPostConnectionCheck = None

一個更好的路線這擺脫了許多其他有價值的檢查。

就xmlrpc調用的錯誤而言,我不能肯定地說不知道錯誤是什麼。我猜這是ProtocolError異常,如果是這種情況,您可以編輯m2xmlrpclib.py,以避免引發ProtocolError異常中列出的errcode異常。

+0

只是更清楚..如果你有「導入M2Crypto」,那麼你必須做M2Crypto.SSL.Connection.clientPostConnectionCheck =無 – 2014-05-21 22:04:01