2013-06-03 98 views
0

我正在爲SSO創建服務提供程序。我已經啓動並運行了整個系統,但我唯一要做的就是驗證使用身份提供商提供的證書獲得的響應。檢查xml針對.pfx證書

我有什麼:

  • 一個認證文件(namewhere.pfx)
  • 密碼(小弦)
  • XML響應(解碼和分析)

我」什麼m使用:

  • php

我需要什麼:

  • 驗證XML響應

我一直在谷歌上搜索了很多,想通這是可能的,如果我有.pem格式的證書。爲此,我搜索了一下,發現了一些Linux命令。但我不確定如何去做。我如何在我的php代碼中使用這些命令並且創建了可用的文件,或者只需創建一次.pem文件並將其存儲在線?如果是這樣,我可以在哪裏放置它們以避免安全問題等。

+0

你能提供更多細節嗎?你到底想要在xml響應中驗證什麼? – gtrig

+0

根據SAML標準,xml內嵌有證書/數字簽名。我們還應該有一張證書,用於驗證響應是否來自經過身份驗證的來源。 – salmanhijazi

回答

3

如果您只是試圖驗證數字簽名,那麼您只需要簽名者的公共證書。就安全問題而言,您不必擔心公開證書,因爲它已經公開。主要的是要確保沒有人能夠將你信任的證書與另一個證書交換出去。

由於您只需要公共證書,因此最好從pfx文件中提取該證書。你可以使用here (Converting pfx to pem using openssl)給出的命令來做到這一點。一些pfx文件可能包含您不想公開的私鑰。這是提取公共證書並僅使用該證書的另一個原因。您可以使用openssl_verify() function來驗證簽名。您需要簽署的數據,簽名和公鑰。在該鏈接上有一些示例代碼將從證書中提取公鑰並驗證簽名。