HTTPS只在OpenBSD 4.9上?

我已经从OpenBSD http://www.openbsd.org/faq/faq10.html#HTTPS尝试了这个例子

它工作正常,但与Mozilla的火狐6.0可以同时使用http和https,而我想强制用户只能使用HTTPS。 我怎样才能做到这一点?

谢谢!

您可以控制您使用的任何Web服务器。 您将要301redirect到您的HTTPS网站。

您可以通过使用mod_ssl指令来限制连接到您的网站以要求HTTPS

SSLRequireSSL

该指令禁止访问,除非启用HTTP上的SSL(即HTTPS)为当前
连接。 在启用了SSL的虚拟主机或目录中,这非常方便 
针对暴露应该受保护的数据的configuration错误。 当这个指令 
存在时,所有不使用SSL的请求都被拒绝。 

您引用的FAQ条目讨论了如何设置您的网站以支持SSL,SSLRequireSSL指令用于指定整个网站(或您网站中特定的别名/目录)的限制。

您可以将http://example.com/redirect到https://example.com/ ,但这意味着纯文本HTTP仍然只用于发送HTTPredirect

这暴露了用户攻击的工具,如sslstrip ,除非他仔细检查每个域名是真正的https://example.com ,而不是http://example.com/ ,而不是https://examp1e.com ,不是https://(insert non-Latin homoglyphs here).com

在这种情况下,您确实想要使用HTTP严格传输安全性 :

HTTP严格传输安全性(HSTS)是一种build议的Web安全策略机制,其中Web服务器声明遵守用户代理(例如Web浏览器) 将仅使用安全连接(例如HTTPS)与其交互。

  1. 如果站点安全问题,你可以使用这个Firefox的扩展只强制HTTPS的所有网站HTTPS的地方 。
  2. 如果出现周边安全问题,则可以使用代理转发服务器将所有http请求redirect到https。
  3. 最后,如果你有一个Web服务器,只需为http和https创build不同的path。 在https中,你将把你的网站,并在http中,你会把只是一个index.html文件使用meta refesh 。 <meta http-equiv="refresh" content="0; url=https://example.com">