我最近将一个带有小商店的 WordPress 网站从托管服务提供商转移到了我自己的运行 Ubuntu Server 12.04.2 LTS 和 Apache 2.2.22 的服务器上。我需要为商店使用 SSL。我设置了几个简单的虚拟主机上了一个新的IP服务器,一个绑定到特定的IP和其他绑定到端口443两者都有的端口80ServerName www.example.com和ServerAlias example.com在虚拟主机的配置。我有SSLStrictSNIVHostCheck off。
该网站运行速度很慢,但正在运行。我在错误日志中收到以下信息。
[Error] Hostname example.com provided via SNI and hostname www.example.com provided via HTTP are different
Run Code Online (Sandbox Code Playgroud)
我预计缓慢与上述消息有关。关于为什么会出现这种情况以及我能做些什么的任何想法?
当我尝试将 CloudFlare 提供的源证书导入 AWS Certificate Manager 以便我可以将它与 ELB、ALB 或 NLB 一起使用时,我发现它需要他们没有提供给我的密钥链证书。我在哪里可以得到那个?
我想设置我的 linux box,以便任何访问端口 80 的东西都会被告知询问 443 端口。我希望它与域、IP 或任何可能存在的特定细节无关。如果可以请求端口 80,则应该告诉它不。我们在 443 上这样做。
我将在 443 上使用 Apache,因此可以很容易地将其绑定到 80,但不要认为解决方案必须在端口 80 上包含 Apache。
需要明确的是,我正在寻找一种无需更改虚拟主机的解决方案。我了解可以通过继承传递的全局重定向。这需要更改 vhost。我正在寻找更全面、更不容易出现“哎呀,我忘了那条线,现在端口 80 暴露了我的未加密数据”的东西。
你会如何着手解决这个问题?iptables、apache、带有 netcat 的自定义 shell 脚本和一些使其成为 SSL 的魔法?