2009-12-04 56 views
2

M2Crypto library在其SSL.Context object上有幾個與CA相關的功能,但是關於何時使用某些功能以及爲什麼,文檔還不太清楚。事實上,幾乎所有文檔都是「將CA證書加載到上下文中」,因此它們似乎都可能做同樣的事情。M2Crypto的set_client_CA_list_from_file()和load_verify_info()之間有什麼區別,你什麼時候使用它們?

severalexamples同時使用set_client_CA_list_from_file()load_verify_info(),但也有像load_client_ca()load_verify_locations()其他類似的功能。

我正在寫客戶端和服務器部分。我應該使用哪些功能?爲什麼?他們具體做什麼?

編輯:

通過我看到的代碼展望:

# Deprecated. 
load_client_CA = load_client_ca = set_client_CA_list_from_file 

# Deprecated. 
load_verify_info = load_verify_locations 

這樣有助於一點點。這將我們帶到了兩個功能:set_client_CA_list_from_file()load_verify_locations()。但我仍然無法分辨兩者的區別。

回答

2

如果您的服務器要求客戶提交證書,則可以通過指定發起人set_client_CA_list_from_file來限制誰是客戶證書的有效髮卡人。這實際上非常罕見。

客戶端通過調用load_verify_locations來指定誰是有效的服務器證書頒發者。幾乎所有的客戶都應該這樣做。

客戶端和服務器都可以調用load_cert來設置自己的證書。服務器應該幾乎總是這樣做。只有服務器要求客戶端提供證書時,客戶端纔可能這樣做。

我建議你通過約翰·維加,馬特·梅西耶和Pravir錢德拉,ISBN 059600270X,應該更詳細地闡明瞭這些問題挑網絡安全的使用OpenSSL副本。

相關問題