具有不同 SSL 的 apache2 多个虚拟主机不起作用

具有不同 SSL 的 apache2 多个虚拟主机不起作用

我使用以下命令生成证书

openssl req -new -newkey rsa:2048 -nodes -keyout rrr.key -out rrr.csr

然后我在 sites-available 文件夹中创建了以下文件 ssl-001.conf

<VirtualHost _default_:444>
       DocumentRoot /var/www/html/endpoint/
       ServerName safcom.co.ke

       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined

       SSLEngine on
       SSLCertificateFile    /home/xxxx/rrr.csr
       SSLCertificateKeyFile /home/xxxx/rrr.key
</VirtualHost>

然后将 ports.conf 更改为

<IfModule ssl_module>
    Listen 443
    Listen 444
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
    Listen 444
</IfModule>

然后重启了我的服务器,但它不起作用。我想要实现的是让我的端口 80 和 443 正常运行,但有一个额外的端口 444,它有 SSL。我做错了什么?我的理解是每个 IP 或端口可以有一个证书!

答案1

您创建了一个证书签名请求 (CSR)。您需要有人来签署此请求(即证书颁发机构),或者您可以自行签署(但该请求不可信,并且您会收到浏览器警告)。

使用 openssl 进行自签名是一个相当简单的过程:

openssl x509 -in rrr.csr -out rrr.crt -req -signkey rrr.key -days 1001

完成此操作后,您将获得一个名为的文件rrr.crt。只需将rrr.csr配置更改为rrr.crt,Apache 就会开始使用您的自签名证书。

另请参阅此帖子:https://stackoverflow.com/questions/10175812/how-to-create-a-self-signed-certificate-with-openssl

相关内容