这确实非常令人困惑,有很多可用于配置 SSL 的指南,但我很困惑,不知道应该遵循什么。
我有一个新的服务器。
- Ubuntu 18.04
- 服务器版本:Apache/2.4.29(Ubuntu)
- 服务器建立时间:2020-08-12T21:33:25
配置虚拟主机如下,它在 HTTP 上运行良好
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html/example
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html/example/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
我收到了一个包含以下文件的 zip 文件。
- xxxxxx.crt
- 随机数生成器.pem
- gd_bundle-g2-g1.crt
将收到的文件复制到 /etc/apache2/ssl
配置为:
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/html/example
<Directory /var/www/html/example/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/aXXXXXX.crt
SSLCertificateKeyFile /etc/apache2/ssl/aXXXXXX.pem
SSLCertificateChainFile /etc/apache2/ssl/gd_bundle-g2-g1.crt
</VirtualHost>
没有错误,语法正确。
sudo apache2ctl configtest
但是当我重新加载我的 apache2 配置时
以下命令运行正常重新加载 apache 配置,但站点停止工作。
sudo systemctl reload apache2
它导致 Apache 服务崩溃 :-(
我做错了什么,请指导
更新:
aXXXXXX.crt
第一行是-----BEGIN CERTIFICATE-----
openssl x509 -in aXXXXXX.crt -noout -text
X509v3 主题备用名称:返回我的有效域名
aXXXXXX.pem
第一行-----BEGIN CERTIFICATE-----
不是-----BEGIN PRIVATE KEY-----
openssl rsa -in aXXXXXX.pem -noout -text
输出:
unable to load Private Key
140489527252288:error:0909006C:PEM routines:get_name:no start line:../crypto/pem/pem_lib.c:745:Expecting: ANY PRIVATE KEY
总共有这 3 个文件,没有其他证书。
答案1
您的配置看起来不错,因此您应该检查这些文件是否符合您的想象。
aXXXXXX.crt应该是一个证书文件。
- 检查第一行是否是
-----BEGIN CERTIFICATE-----
。 - 运行
openssl x509 -in aXXXXXX.crt -noout -text
并检查输出是否适合您的服务器。特别查看“主题”和“x509v3 主题备用名称”字段。
- 检查第一行是否是
aXXXXXX.pem应该是一个私钥文件。
- 检查第一行是否是
-----BEGIN PRIVATE KEY-----
。 - 运行
openssl rsa -in aXXXXXX.pem -noout -text
。第一行应该是“RSA Private-Key”。
- 检查第一行是否是
gd_bundle-g2-g1.crt应该是一个证书链文件,它只是一个中间证书的列表。
- 检查其中是否有一个或多个证书。每个证书都以 开头
-----BEGIN CERTIFICATE-----
,以 结尾-----END CERTIFICATE-----
。
- 检查其中是否有一个或多个证书。每个证书都以 开头