【问题标题】:Access certificate private key from PHP, certificate key stored in windows certificate store从 PHP 访问证书私钥,证书密钥存储在 Windows 证书存储中
【发布时间】:2011-11-09 14:42:32
【问题描述】:

我们需要在 PHP 应用程序中使用证书进行 SOAP 调用,我们需要一种方法来读取存储在 Windows 证书存储中的私钥。环境包括windows 2008 R2、IIS 7。

我们最好的选择是什么?

【问题讨论】:

    标签: php certificate key store


    【解决方案1】:

    您可以从 Windows 导出加密的、受密码保护的证书,将其转换为 PHP 可以读取的格式,并将其保留在运行 PHP 的 Web 服务器上。

    PHP 可以读取 RSA 加密(base 64 编码)X.509 证书和私钥。

    查看http://php.net/manual/en/function.openssl-private-decrypt.php

    我过去做过。

    【讨论】:

    • 客户要求将所有证书存储在windows证书存储中,不能绕过他们的企业安全策略和实践
    • 我们能否在 IIS 下指定在使用 web.config 访问的外部链接的标头中附加签名证书? PHP -> IIS -> 在标头中附加签名证书 -> Web 服务?
    • @OpenProjDevel,您的 PHP 是否在同一个 Windows 服务器/IIS 上运行?是存储证书的问题,因为导出只是一个副本。您需要整个证书还是只需要密钥?请提供更多详细信息。
    • @OpenProjDevel,你想做什么?如果 PHP 在同一台 Windows 服务器上,您始终可以编写自己的 PHP 扩展,使用本机代码读取证书或使用实验性 .NET 扩展。 php.net/manual/en/function.dotnet-load.php
    • 非常感谢,不知道 .Net 扩展名。是的,PHP 在同一台服务器上,我们有证书但需要密钥。我们打算使用 CURL 进行 SOAP 调用,而这又需要使用私钥对证书进行签名。
    猜你喜欢
    • 2013-05-27
    • 2011-02-06
    • 2012-10-25
    • 2013-05-30
    • 2019-12-06
    • 2013-03-30
    • 2015-07-19
    • 2018-11-10
    • 2022-12-18
    相关资源
    最近更新 更多