无法在Apache Windows上configurationSSL证书

我从Godaddy购买了一个证书,并且收到了一个.crt文件以及.p7b文件(PKCS#7)。

这是我在https-ssl.conf文件下的configuration

<VirtualHost *:443> ---- SSLEngine on SSLCipherSuite DHE-RSA-AES256-SHA:EDH-RSA-DES-CBC3-SHA:DHE-RSA-AES128-SHA:AES256-SHA:DES-CBC3-SHA:AES128-SHA:RC4-SHA SSLCertificateFile "conf/extra/blablabla.crt" SSLCertificateChainFile "conf/extra/gd-g2_iis_intermediates.p7b" 

当我尝试启动Apache服务器时,在错误日志中收到以下错误:

我在Windows Server 2012环境下安装了Xampp Apache 2.4。 任何人都可以让我知道是什么导致SSLconfiguration的问题?

显然blablabla.crt包含的私钥(这是允许的,虽然不推荐),密钥是encryption的,因此需要密码(这显然不能在Windows上工作;请参阅例如https://support.quovadisglobal.com/kb/ a90 / i-get-error-message-error-init-sslpassphrasedialog-builtin-is-not-supported-on-win32.aspx )

提取私钥并解密(除非你已经拥有它,例如从CSR生成步骤),并将解密后的版本放回到文件中,或从该文件中删除,并将解密后的版本放在一个单独的文件中(命名为有意义的像blablabla.key)并在SSLCertificateKeyFile指定它。 在任何情况下,为了确保安全,请确保包含解密密钥的文件上的ACL尽可能地受到限制。 随着最近的OpenSSL(1.0.0 +),你可以解密一个

 openssl pkey <oldkey >newkey # no -passout, optional -passin openssl rsa <oldkey >newkey # ditto, only if key is RSA -- # however without greater knowledge you are unlikely to have # successsfully generated a key and obtained a cert for non-RSA # oldkey can be the blablabla.crt that contains _both_ cert and key; # OpenSSL will select the correct-type block from a PEM-format file. 

对于OpenSSL 0.9.x而不是pkey使用

 openssl pkcs8 -topk8 -nocrypt <oldkey >newkey 

然而,Apache(通过OpenSSL)不支持证书链的p7b格式,尽pipe2.4.8+应该支持SSLCertificateFile中的链证书, SSLCertificateFile需要单独的SSLCertificateChainFile 。 先做

 openssl pkcs7 -print_certs <chain.p7b >chain.pem 

然后将该新文件作为SSLCertificateChainFile使用,或者将其作为SSLCertificateFile即blablabla.crt)附加到该文件。

PS:我假设XAMPP(我不使用自己)给你openssl命令行。 如果没有,那么在http://www.slproweb.com/products/Win32OpenSSL.html有一个很好的Windows版本的OpenSSL(免费&#xFF09;