没有私钥的Apache SSL

我们目前正在与一名需要SAML身份validation的客户合作,在我们的服务器上设置他们的QA站点。 他们已经给我们发送了用于安装SSL的CRT文件,但是他们没有发送密钥。 我知道最低限度的SSL要求.crt和.key文件来完成握手,但他们要求我没有.key文件。

我的问题是:这甚至可能吗? 这是一个晦涩的Apacheconfiguration,没有人尝试过,因为它没有任何意义? 我一直在寻找各种文件,并已空了。

当然,我试图运行没有密钥的Apache时出现错误:

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

这是预期的,但现在我希望find一个解决scheme。

谢谢!

完全取决于该证书的使用目的。

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

  • 您的客户端可能已经向您发送了公共密钥(内部CA的fi),以便您可以使用它来validation消息中的SAML签名,validationTLS安全连接返回给它们或validation它们使用的客户端证书。 在这种情况下,你不需要也不应该得到相关的私人密钥…

  • 也许你的一位同事发送了CSR,签名证书是你的客户的回应; 那么你应该已经拥有私钥和你的客户最确定的不是…

您可能需要先检查证书: openssl x509 -in <filename>.crt -noout -text -purpose

不会。公私密钥authentication系统是完全没有意义的。

你可以得到使用HTTPS的每个网站的证书( 看看这个如何 )。 想一想,如果你问的是可行的,你可以在当地的环境中做些什么? 你可以很轻松地模仿谷歌,Facebook或任何网站的一点点工作。

为了使SSL正常工作, .key 必须.crt一起工作(它们是成对的,因为.key是私钥)。

如果你/他们需要在你的Apache中使用SSL ,你可以生成自签名(或虚拟)证书,最终你可以使用.key.crt (或者只是.pem )来使用你的Apache。

或者更好的方法去使用Let's Encrypt :

让我们encryption是一个新的证书颁发机构:它是免费的,自动的,开放的。