【问题标题】:Client SSL authentication causing 403.7 error from IIS客户端 SSL 身份验证导致 IIS 出现 403.7 错误
【发布时间】:2011-07-12 22:23:01
【问题描述】:

我正在尝试连接到配置为通过 SSL 客户端证书对用户进行身份验证的 Web 服务(不受我控制)。我有一个 PKCS12 格式的有效证书,其中包含客户端证书和关联的私钥。证书由 Web 服务提供商接受的 CA 颁发。

安装证书并尝试在各种浏览器中访问受限区域会得到以下结果:

  • IE6 - 工作正常,我可以检索 WSDL

  • IE7 - 提示输入证书,但随后因来自服务器的 403.7 而失败

  • Firefox3 - 设置为询问,但没有提示并且失败并返回 403.7

  • Safari 4 - 证书已安装在钥匙串中,但没有提示和 403.7

此外,尝试以编程方式 (Java) 访问 Web 服务失败,并出现相同的 403.7 错误代码。

奇怪的是,这在 IE6 中有效,但在其他浏览器中无效,我错过了什么?我需要在 PKCS12 文件中包含完整的 CA 证书链吗?

任何帮助将不胜感激。

【问题讨论】:

    标签: authentication ssl client ssl-certificate


    【解决方案1】:

    这真的有效!如果您对 -inkey 和 -in 选项感到困惑,它们是 p12 文件中的私钥和证书。您可以使用以下命令将 p12 文件转换为 pem 格式:

    openssl pkcs12 -in file.p12 -clcerts -out file.pem
    

    并仅将上述命令与“-in file.pem”一起使用。

    此外,您可以将根 CA 证书导入您的受信任证书存储,这里是如何做到这一点的描述:http://gagravarr.org/writing/openssl-certs/others.shtml#ca-openssl,然后您不必手动复制证书。安装证书后,使用上面没有“-CAfile chain.pem”的命令。

    【讨论】:

      【解决方案2】:

      好的,让这个工作。答案是肯定的,我确实需要在 PKCS12 文件中包含所有中间 CA 证书。我将所有中间 CA 证书以及文件“chain.pem”中的根 CA 证书连接起来,然后执行以下命令:

      openssl pkcs12 -export -chain -CAfile chain.pem -in cert.pem -inkey key.pem -out cert.p12
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-16
        • 1970-01-01
        • 2012-09-01
        • 1970-01-01
        • 2014-09-15
        • 2014-11-13
        相关资源
        最近更新 更多