我正在为SSO创建服务提供。我已经启动并运行了整个系统,但我唯一要做的就是使用身份提供商提供的证书来验证我们得到的响应。
我有什么:
我正在使用的是什么:
我需要什么:
我一直在谷歌搜索很多,并且认为如果我有.pem格式的证书就有可能。为此我搜索了一些Linux命令。但我不确定如何去做。我如何在我的PHP代码中使用这些命令并使所创建的文件可用,或者我只是创建一次.pem文件并将其存储在线?如果是这样,我将它放在哪里以避免安全问题等。
答案 0 :(得分:3)
如果您只是想验证数字签名,那么您只需要签名者的公共证书。就安全问题而言,您不必担心暴露证书,因为证书已经公开。最重要的是确保没有人可以将您信任的证书换成另一个证书。
由于您只需要公共证书,因此最好从pfx文件中提取该证书。您可以使用给定here (Converting pfx to pem using openssl)的命令来执行此操作。某些pfx文件可能包含您不希望公开的私钥。这是提取公共证书并仅使用它的另一个原因。
然后您可以使用openssl_verify()
function来验证签名。您需要签名的数据,签名和公钥。该链接上有一些示例代码,它将从证书中提取公钥并验证签名。