让我来展示一下我的设置和问题。也许你们中的一些人会有一些想法让我去测试。
设置
关于数字海洋:
- 我有一个 Web 服务器运行一个网站,前端使用 NGINX(后端使用 Ruby on Rails,但我认为这不相关)
- 我已打开端口 80 (http) 和 443 (https)
- 我拥有 StartSLL 颁发的有效 SSL 证书(据我所知和最近的检查)(将在不久的将来发生变化,但也不相关)
- 我有一个免费的 Cloudflare CDN 帐户,并且启用了严格 SSL。
这是一个有效的设置,因为我的浏览器访问 http 或 https 没有任何问题。显示的证书是来自 Cloudflare 的 SNI 证书。我的网站在可用网站列表中。
问题
好的,现在问题出在我尝试将网站添加到社交网络时。尝试使用网站的 SSL 版本在 Tumblr 中添加照片或将链接添加到 Reddit。我收到了两个系统的错误。据我了解,这些是使用 Curl 或 Python 脚本来获取资源,并且 SNI SSL 得不到很好的支持。
由于 Cloudflare 非常受欢迎,而且很可能是免费套餐,所以我找不到太多关于这个主题的信息。我浏览了 Google 和一些 Stack Exchange 网站,但都找不到。这似乎对任何人来说都不是问题。
解决方案
- 不要吝啬每月支付 200 美元购买 CloudFlare 上的个人 SSL(如果我每月赚到足够的钱,我会很乐意这样做)
- 完全放弃 CoudFlare,让 DigitalOcean 服务器使用 HTTPS 管理页面。也许可以在此过程中添加清漆或其他优化。流量和带宽将来可能会成为问题。
- 完全放弃 HTTPS 并保留 CloudFlare。这可行,但 Google 会给能够处理 SSL 和移动流量的网站更多分数。我也喜欢我的隐私。
- 我在某个地方搞砸了 Nginx/CloudFlare 配置设置,我应该多注意文档。(我对 Apache 的了解比 Nginx 多,但在这种情况下,我喜欢一些 Nginx 功能,我可以通过 Ruby on Rails 更好地利用这些功能)
你可以说我过度设计了系统。但与此同时,我最终得到了一个超快的网站,响应时间约为 500 毫秒,流量快速分布在世界各地。(我的业务覆盖全球,而不是本地)
欢迎任何想法。
答案1
如果问题确实出在 SNI 上,CloudFlare 的专业计划最有可能修复它,因为它支持更多浏览器并且价格为 5 美元(而不是 200 美元的计划)。
要测试你的 SSL 设置以及它应在哪些浏览器上运行,你可以尝试SSL 实验室- 他们提供的在线工具非常全面而且免费。
至于你的“令牌未由 STS 传送“问题,根据谷歌搜索到的一些结果,我猜测它是不相关的。
对于从谷歌来到这里的人:如果您最近才为您的域名启用 CloudFlare 并且遇到 SSL 问题,请确保您已经等待足够长的时间让您的 DNS 更改在国际上传播(最多 48 小时就可以了)并确保在您的 CloudFlare 仪表板的“加密”页面上显示“证书有效”。