Apache-2.2

Apache2 SSL 證書錯誤

  • June 25, 2019

我買了一個證書。在檢查域。他們給了我兩個文件**.crt.ca-bundle.key**。我將它們移至“/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

您可以在重新啟動服務之前使用該命令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

要驗證您的證書,您可以使用以下命令並檢查 Cert 的模數和密鑰文件的結果,它必須相同。

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 服務

引用自:https://serverfault.com/questions/905364