![混合内容和 SSL 站点/协议相对 URL](https://linux22.com/image/631439/%E6%B7%B7%E5%90%88%E5%86%85%E5%AE%B9%E5%92%8C%20SSL%20%E7%AB%99%E7%82%B9%2F%E5%8D%8F%E8%AE%AE%E7%9B%B8%E5%AF%B9%20URL.png)
我有一个网站,直到最近才开始使用 HTTP,当时有人要求我们添加 SSL 证书,因为担心主页上的登录小程序会受到 MIM 攻击。我购买了证书,但意识到 HTML 中有很多协议特定的链接。我知道使用协议相对链接是一种建议的技术,但这意味着我链接到的每个用于 JS 包含或图像的网站也都需要证书,对吗?我认为如果每个包含都来自同一个域,通配符证书可能会很有用,但我有多个域,并且包含跨越其中几个域,所以我不能只使用 CN=*.mydomain.com
我该如何处理?RHEL 6、Apache 2.2.15(RHEL 反向移植版本)、SNI 已启用、mod_ssl 等。
答案1
所有内容都需要通过 HTTPS 提供以避免警告。如果攻击者仍然可以进行 MITM 攻击并更改您正在加载的 jquery js,那么 SSL 有什么用呢?他们仍然可以通过 javascript 更改所有内容。
因此你的选择是:
将所有内容移动/复制到同一域。通过移动文件、反向代理或其他技巧。
为每个域名获取单独的 SSL 证书(如果它们位于同一台服务器上,这通常也意味着单独的 IP 地址)
获取 SAN(主题备用名称)证书。这样您就可以拥有一个涵盖多个指定域和/或子域的证书。域名数量取决于提供商和您支付的费用。它们通常可以与通配符组合以覆盖所有子域。