2015-09-21 39 views
0

我期待利用mcafee-epo web api python庫來自動執行一些更重複的維護任務。Python - 使用McAfee Web API時忽略自簽名證書警告

當試圖連接到我們的epolicy服務器時,我收到一個錯誤,指出證書無效並且腳本崩潰。

發生錯誤是因爲我們的ePO服務器使用自簽名證書,因此在連接時會產生通常的安全警告。

mcafee-epo軟件包/模塊中是否有任何內置函數可用於忽略此安全警告,或者是一種可以避免產生SSL錯誤的模擬處理方法?

謝謝! 一個困惑的小夥子。管理員

回答

1

查看源代碼在這裏https://bitbucket.org/davidism/mcafee-epo/src/ecc8836ea933f188dd9836e056cbaaabf768085d/mcafee_epo.py?at=default&fileviewer=file-view-default,如果你只是讓你的通話這樣:

client = Client() 
client('endpoint', verify=False) 

我不能測試,但McAfee的庫使用的請求模塊。您在請求中忽略SSL的方式是在您的get/post調用中包含verify=False。將client中的kwargs傳遞給這個請求模塊獲取的包裝。

http://docs.python-requests.org/en/latest/user/advanced/#ssl-cert-verification

+0

沒有,如果你從'kwargs'傳遞給'__call__'用來仔細一看只有'files'和'params'參數。並建議關閉身份驗證從來不是一個很好的建議。 – mata

+0

我沒有推薦任何東西,他問如何禁用警告......如果仔細觀察,'params'會被'kwargs'更新,儘管我不認爲它會在'_request'中使用它們。可能需要修改這個模塊才能使用kwargs。 – postelrich

0

你應該儘量讓requests接受你的自簽名的證書。

的一種方法是設置REQUESTS_CA_BUNDLE環境變量指向證書(束)請求應使用:

os.environ['REQUESTS_CA_BUNDLE'] = "/path/to/cert.pem" 

另一種方法是改變庫的源傳遞證書束作爲verify參數到session.get()/session.post()

您應該檢查請求的文檔約ssl cert verification