【发布时间】:2016-04-30 00:47:59
【问题描述】:
我使用 openssl 命令创建了一个私钥文件:
openssl genrsa -des3 -out private.key 2048
输入我的密码,然后生成 CSR:
openssl req -new -key privatekey.key -out csrkey.csr
我使用此 CSR 密钥通过 RapidSSL 创建我的 SSL 证书。他们向我颁发了 3 个以 .cer 结尾的证书,即:
- CACertificate-1.cer
- CACertificate-2.cer
- ServerCertificate-1.cer
我将所有这些证书上传到 /etc/apache2/ 文件夹
/etc/apache2/ 包含:
- CACertificate-1.cer
- CACertificate-2.cer
- ServerCertificate-1.cer
- Privatekey.key
- Csrkey.csr
- Chain.ctr (I got this from Rapid SSL as an intermidiate certificate)
然后我不得不将代码添加到 /etc/apache2/apache2.conf:
<VirtualHost _default_:443>
SSLEngine on
DocumentRoot /var/www/html
ServerName example.co.uk
SSLEngine on
SSLCertificateFile /etc/apache2/CACertificate-1.cer
SSLCertificateKeyFile /etc/apache2/privatekey.key
SSLCertificateChainFile /etc/apache2/chain.ctr
</VirtualHost>
我的/etc/apache2/apache2.conf 文件没有<VirtualHost>,当我尝试重新启动 apache 时,它显示“此模块中未定义 SSLEngine 命令”。所以我环顾四周,发现/etc/apache2/sites-available/default-ssl.conf 确实包含<VirtualHost>
我继续添加上面的代码,但在使用重新启动 apache 之后
sudo apachectl restart
但是https://example.co.uk 给了我一个灰屏:SSL 连接错误
ERR_SSL_PROTOCOL_ERROR 隐藏详细信息 无法建立安全连接 到服务器。这可能是服务器的问题,也可能是 需要您没有的客户端身份验证证书。
【问题讨论】:
-
2018 年小幅更新,您可以使用letsencrypt.org 在您的 Apache 服务器上自动处理此过程。
标签: wordpress apache ssl google-compute-engine