我想为我的运行 apache 的服务器设置 ssl。所以我按照 google 给出的说明进行操作。我为我的域请求了 ssl 证书,并获得了 ssl-mysite.key 文件。 不幸的是,这是我从提供商那里收到的唯一文件。
但是您需要 SSLCertificateChainFile 和 SSLCertificateFile 我在里面找到了一个 SSLCertificateFile
/etc/ssl/certs/ca-certificates.crt
尝试将其添加到我的 mysite.conf 文件中
<VirtualHost *:80>
ServerName www.mysite.com
ServerAlias mysite.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ca-certificates.crt
SSLCertificateKeyFile /etc/ssl/sites-pk.key
ErrorLog ${APACHE_LOG_DIR}/mysite-error.log
...
所以我查找了 mysite-error.log 以获取更多信息,我得到了
[ssl:emerg] [pid 956:tid 1234567890] AH0123: Certificate and private key www.mysite.de:443:0 from /etc/ssl/certs/ca-certificates.crt and /etc/ssl/sites-pk.key do not match
我想可能是因为我在.conf中使用端口80,但如果我更改为443,服务器甚至无法启动。
您必须以正确的方式使用 SSL 成功运行 apache。
在apache中安装SSL需要3个文件。
在购买 SSL 之前,您必须填写网站名称、组织名称、国家代码等表格来生成 CSR 文件。
在生成 CSR 期间,还需要生成私钥文件。
将 CSR 和密钥文件保存在您的系统中。
现在将 CSR 文件发送给您的 SSL 提供商,付款后它将生成并为您提供一个 zip 文件。
下载该zip文件并解压,您将得到以下3个文件
现在您必须使用前两个文件以及之前在 mysite-ssl.conf 文件中保存的密钥文件。
保持 mysite.conf 不变,请勿将 SSL 证书放入其中。 另外,您还需要提及两个conf文件中的DocumentRoot路径,您在这里错过了
<VirtualHost *:80>
ServerName mysite.com
ServerAlias www.mysite.com
#DocumentRoot as example
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/mysite-error.log
在 /etc/apache2/sites-available/ 文件夹中创建一个新文件,如 mysite-ssl.conf 并编写如下
<VirtualHost *:443>
ServerName mysite.com
ServerAlias www.mysite.com
#DocumentRoot as example
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/certificates.crt
SSL CertificateChainFile /etc/ssl/certs/certificates.crt
SSLCertificateKeyFile /etc/ssl/sites-pk.key
ErrorLog ${APACHE_LOG_DIR}/mysite-error.log
然后启用它
cd /etc/apache2/sites-available/
sudo a2ensite mysite-ssl.conf
重启apache服务
sudo systemctl restart apache2
享受快乐的虚拟主机!!!