Apache2 SSL 证书错误

Apache2 SSL 证书错误

我在 checkdomain 购买了证书。他们给了我两个文件.crt和一个.ca-bundle。钥匙。我将它们移至“/etc/ssl/g/”。我使用“a2enmod ssl”启用 SSL,然后使用“sudo service apache2 restart”重新启动 apache,到现在为止没有错误。

然后我编辑了default-ssl.conf:

<VirtualHost *:443>
ServerName mrgrimod.de
DocumentRoot "/var/www/html"

SSLEngine on
SSLCertificateFile    /etc/ssl/g/g.crt
SSlCertificateKeyFile /etc/ssl/g/g.key
</VirtualHost>

然后我尝试使用“sudo service apache2 restart”重新启动 apache,但重新启动失败并出现以下错误:Job for apache2.service failed. See 'systemctl status apache2.service' and 'journalctl -xn' for details.

Apache 错误日志包含以下行:

 Fri Mar 30 17:03:50.143429 2018] [ssl:error] [pid 10598:tid 3074262784] AH02579: Init: Private key not found
[Fri Mar 30 17:03:50.143530 2018] [ssl:error] [pid 10598:tid 3074262784] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Fri Mar 30 17:03:50.143557 2018] [ssl:error] [pid 10598:tid 3074262784] SSL Library Error: error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error
[Fri Mar 30 17:03:50.143578 2018] [ssl:error] [pid 10598:tid 3074262784] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Fri Mar 30 17:03:50.143599 2018] [ssl:error] [pid 10598:tid 3074262784] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=RSA)
[Fri Mar 30 17:03:50.143620 2018] [ssl:error] [pid 10598:tid 3074262784] SSL Library Error: error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib
[Fri Mar 30 17:03:50.143640 2018] [ssl:error] [pid 10598:tid 3074262784] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Fri Mar 30 17:03:50.143660 2018] [ssl:error] [pid 10598:tid 3074262784] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=PKCS8_PRIV_KEY_INFO)
[Fri Mar 30 17:03:50.143674 2018] [ssl:emerg] [pid 10598:tid 3074262784] AH02311: Fatal error initialising mod_ssl, exiting. See /var/log/apache2/error.log for more information
[Fri Mar 30 17:03:50.143704 2018] [ssl:emerg] [pid 10598:tid 3074262784] AH02564: Failed to configure encrypted (?) private key server1.server1.de:443:0, check /etc/ssl/ssl.key/server.key

答案1

您可以使用该命令apachectl -t在重新启动服务之前检查是否存在语法错误。如果没有发现错误,apache该命令应该会输出。Syntax OK

.conf在我们确定错误是什么之前,您应该提供有关文件的更多详细信息。

无论如何,这是一个启用 SSL 支持的配置示例:

<VirtualHost *:443>
ServerName example.com
DocumentRoot "/var/www/html"

SSLEngine on
SSLCertificateFile /etc/httpd/ssl/mycert.pem
SSlCertificateKeyFile /etc/httpd/ssl/mycert.pem
SSLProtocol ALL -SSLv2 -SSLv3
SSLHonorCipherOrder On
SSLCipherSuite HIGH:!aNULL:!MD5
</VirtualHost>

要启用 SSL,配置文件必须至少包含以下选项:

SSLEngine On:开启对 SSL 的支持。

SSLCertificateFile:您提供的签名证书的位置。

SSlCertificateKeyFile:在您的系统上生成的密钥文件。

此外,许多浏览器都需要一个方法来证明对你网站的请求是合理的,即使用配置选项包含链文件(称为 bundle)。SSLCertificateChainFile

我建议参考以下:Apache how-to:https://httpd.apache.org/docs/2.4/en/ssl/ssl_howto.html

答案2

要验证您的证书,您可以使用以下命令并检查证书和密钥文件的模数的结果,它必须相同。

openssl x509 -noout -modulus -in /etc/ssl/g/g.crt

openssl rsa -noout -modulus -in /etc/ssl/g/g.key

另外,您可以检查目录 /etc/ssl/g/ 上的文件权限,仅供测试,您可以 chmod -R 777 /etc/ssl/g 内容并重新启动 apache 服务

答案3

只是想提醒任何遇到此错误的人,或者其他使用 https 的 apache 用户必须在我的 apache conf 上添加 Listen 443

答案4

Checkdomain 给了我一个无效的私钥。问题解决了。

相关内容