在 apache2 上设置 ssl

Posted

技术标签:

【中文标题】在 apache2 上设置 ssl【英文标题】:setting up ssl on apache2 【发布时间】:2011-05-22 06:47:24 【问题描述】:

我在使用 apache2 运行 SSL 时遇到问题。

我浏览了许多有用的文章:

启用 ssl (sudo a2ensmod ssl) 生成的 ssl 证书 生成了一个自签名证书(这是为了 测试) 设置我的 default-ssl conf 文件

将 /etc/apache2/sites-enabled 中的 conf 文件启用为 000-default-ssl

NameVirtualHost my.i.p.address 
<VirtualHost my.i.p.address:443>
DocumentRoot /var/www
SSLEngine on
#SSLOptions +StrictRequire
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
ServerAdmin you@example.com
ErrorLog /var/log/ssl_error_log
TransferLog /var/log/ssl_access_log
</VirtualHost>

我在启用站点 (000-default-ssl) 中生成了指向可用站点中的默认 SSL 配置文件的符号链接

我在 Firefox 中收到以下错误:ssl_error_rx_record_too_long 我的 apache 错误日志有一行:Invalid method in request \x16\x03

端口 443 已打开并正在侦听,因为我可以点击 http://my.IP.Address:443 而不会出错。

所以看起来我的服务器正在侦听端口 443,但它正在提供不安全的内容 (HTTP),这让我相信我的 VirtualHost conf 中有错误但我找不到它。

有什么建议吗?

【问题讨论】:

当您尝试https://... 时会发生什么? @Pekka -- 在 FF 中,我得到错误代码:ssl_error_rx_record_too_long 查看错误,它指向apache没有在我的default-ssl上接,表明它没有被启用 更进一步——我已经仔细检查了 conf 文件是否已启用。我已经尝试过 VirtualHost default:443 和 VirtualHost *:443 - 都没有工作 【参考方案1】:

因此,解决方法是将端口添加到我的 .conf 文件中的所有 NameVirtualHost 声明中:

NameVirtualHost my.i.p.address:443

【讨论】:

以上是关于在 apache2 上设置 ssl的主要内容,如果未能解决你的问题,请参考以下文章

如何设置别名或 VirtualHost 以在 Apache2 上运行 laravel 项目

在 Apache 2.4.7 (ubuntu) 上设置服务器缓存

如何使用 apache2 在我的 Linux 网络服务器上设置音频文件的 CORS 访问权限?

无法浏览到新 Laravel Apache2 设置上的主 URL 以外的任何内容。错误:在此服务器上找不到请求的 URL

Apache2 使用 Django 项目设置带有子域的虚拟主机

关于 Apache2 上的 SSL 设置 [关闭]