无私钥的 Apache SSL

无私钥的 Apache SSL

我们目前正在与一位客户合作,该客户需要 SAML 身份验证才能在我们的服务器上设置他们的 QA 站点。他们已向我们发送了用于安装 SSL 的 CRT 文件,但他们没有发送密钥。我知道 SSL 至少需要 .crt 和 .key 文件才能完成握手,但他们要求我在没有 .key 文件的情况下执行此操作。

我的问题是:这真的可能吗?这是 Apache 的一个模糊配置吗?因为它毫无意义,所以没人尝试过?我搜索了各种文档,但一无所获。

当然,当我尝试在没有密钥的情况下运行 apache 时,我会收到错误:

AH02238: Unable to configure RSA server private key
SSL Library Error: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch

这是意料之中的,但现在我希望找到解决方案。

谢谢你!

答案1

为了使 SSL 正常工作,.key 必须伴随.crt(它们是成对工作的,就像.key私钥一样)。

如果您/他们需要SSL您的 Apache,您可以生成自签名(或虚拟)证书,您最终将拥有该证书.key并且.crt(或只是.pem)您可以将其与您的 Apache 一起使用。

或者更好的方法是使用让我们加密

Let's Encrypt 是一个新的证书颁发机构:它是免费的、自动化的和开放的。

答案2

这完全取决于该证书的预期用途。

出于许多目的,您需要完整的密钥对,但我也可以想象其他场景:

  • 您的客户端可能已向您发送公钥(其内部 CA 的 fi),因此您可以使用它来验证其消息中的 SAML 签名、验证与他们的 TLS 安全连接或验证他们使用的客户端证书。在这种情况下,您不需要也不应该收到相关的私钥...

  • 也许您的一位同事发送了 CSR,而签名的证书是您的客户做出的回应;那么您应该已经拥有私钥,而您的客户肯定没有……

您可能需要先使用以下命令检查证书:openssl x509 -in <filename>.crt -noout -text -purpose

答案3

不。这对于公私密钥认证系统来说根本就没有意义。

您可以获取每个使用 HTTPS 的网站的证书(看看这个)。想想看,如果你所要求的事情是可行的,那么在本地环境中你能做什么?只需一点点努力,你就能轻松地模仿 Google、Facebook 或任何网站。

相关内容