运行一个只服务于HTTPS而不是HTTP的网站是可以接受的。考虑在地址栏中键入普通域名的情况。通常,网站将用户重定向到HTTPS版本。
有一个很好的理由只想提供HTTPS。考虑一下这种情况:
发布于 2012-02-26 20:20:46
取决于地点。
只有当服务器不接受端口80上的连接;用户友好的重定向,甚至错误页面上写着“使用https!”时,才能防止出现上述情况。将允许发送未加密的API请求。当然,当它不起作用时,打电话的人应该在一次失败的尝试之后注意到并修复他们的错误--希望他们没有用敏感数据进行测试。
这种单一的非安全通信尝试是否可以接受(希望使用非敏感数据)完全取决于您的安全需求。
如果站点只用于API调用,那么就可以不使用端口80。
如果用户将在浏览器中访问站点(手动输入地址),那么就不能期望在没有混乱和恼怒的情况下离开端口80。
发布于 2012-02-26 20:23:34
我真的看不出有什么好理由不这样做。如果您的站点必须一直都是安全的,那么没有什么可以阻止您仅通过SSL提供服务。
下面是一个关于如何实现它的知识库:Apache:将http重定向到https Apache安全连接强制HTTPS连接。
要只允许SSL连接,还可以在服务器配置中使用SSLRequireSSL指令。
(不确定这是否适合您,因为它会将端口80上的所有通信量重定向到整个服务器的端口443,但这也能起作用):
修改您的iptable以将端口80重定向到端口443:
--iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
--iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
--iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 443https://serverfault.com/questions/363923
复制相似问题