2012-01-25 146 views
4

我熟悉的HTTPS實現的公共/私有密鑰協商,這就是爲什麼我由是apparently available以下驅動程序選項混淆(儘管沒有正式記錄),用於PDO的MySQL驅動程序:SSL PDO(MySQL)支持SSL如何工作?

PDO::MYSQL_ATTR_SSL_KEY 
PDO::MYSQL_ATTR_SSL_CERT 
PDO::MYSQL_ATTR_SSL_CA 

的鏈接建議他們指向本地存儲的文件 - 但爲什麼除了CA證書之外的任何副本都會存儲在客戶端上?有沒有人使用這種方法成功地進行了加密連接?

回答

2

這涉及到客戶端必須具備的客戶端證書才能連接到服務器,即客戶端必須驗證其身份(是的,SSL可以以其他方式工作)。通過讀取普通區間Using SSL for Secure Connections開始,然後看到GRANT syntaxREQUIRE條款:

  • REQUIRE X509意味着客戶端必須有一個有效的證書,但確切的證書,頒發者和主題並不重要。唯一的要求是應該可以使用其中一個CA證書驗證其簽名。

  • REQUIRE ISSUER 'issuer'對連接企圖的限制是客戶必須出示由CA「頒發者」頒發的有效X509證書。如果客戶端提供的證書有效但具有不同的頒發者,則服務器拒絕連接。使用X509證書總是意味着加密,所以在這種情況下SSL選項是不必要的。

  • ...