ssl仅指定网站

ssl仅指定网站

我已经为我的服务器制作了 SSL 证书,但我只能将 SSL 用于特定网站吗?

例如,里面/var/www有很多 Web 文件夹,我希望“A”网站使用 HTTPS,而其他网站不使用 HTTPS。

如何設定?

答案1

Apache 维基有一个不错的页面使用 SNI 的虚拟主机的 SSL。他们一步一步地描述了设置过程。我会在这里写下要点。

您需要 OpenSSL 0.9.8f 或更高版本。如果您使用 Ubuntu Hardy Heron (8.04) 或更高版本,您将获得正确的版本。此外,OpenSSL 应该启用 TLSExtensions。这是自 0.9.8k 版本(Lucid、10.04)以来的默认情况。您的 Apache 版本应该有 SNI 支持。查看您的error.log

[警告] 初始化:基于名称的 SSL 虚拟主机仅适用于支持 TLS 服务器名称指示的客户端(RFC 4366)

如果您发现上述消息,则表示 SNI 已启用,如果您看到下面的消息,则表示 SNI 未内置。

您不应将基于名称的虚拟主机与 SSL 结合使用

在您的默认配置中,您应该将 TLSv1 设置为支持的协议。查找变量SSLProtocol。如果找不到任何设置,您可以添加:

SSLProtocol All -SSLv2

这增加了对所有已知 SSL 和 TLS 版本的支持,但不包括 SSL 版本 2。

现在您必须设置您的虚拟主机并且可能还需要激活 SSL 支持(sudo a2ensite ssl加上 Apache 重启):

<virtualhost *:443>
        SSLEngine On
        SSLCertificateFile /path/to/your/sslcert
        DocumentRoot /path/your/webcontent
</virtualhost>

此外,还要设置SSLStrictSNIVHostCheck on您的 Apache 或 vhost 配置。现在您可以重新启动 Apache,并且可能会获得 SSL 支持。但是 SNI 有很多陷阱。如果遇到任何错误,请检查您的 error.log。它可能会为您提供错误提示。

Apache 文档有一些关于其 SSL 支持的详细描述

相关内容