![如何对某些页面使用 SSL,而对其他页面不使用?](https://linux22.com/image/509327/%E5%A6%82%E4%BD%95%E5%AF%B9%E6%9F%90%E4%BA%9B%E9%A1%B5%E9%9D%A2%E4%BD%BF%E7%94%A8%20SSL%EF%BC%8C%E8%80%8C%E5%AF%B9%E5%85%B6%E4%BB%96%E9%A1%B5%E9%9D%A2%E4%B8%8D%E4%BD%BF%E7%94%A8%EF%BC%9F.png)
我们正在构建一个应用程序,我们希望以下任何内容都是 SSL:
secure.ourapp.com -> 所有页面都必须是 SSL(可以使用 apache 中的 Vhost 来完成吗?)
www.ourapp.com/signup -> SSL www.ourapp.com/login -> SSL www.ourapp.com/information -> 非 SSL
所以我的问题是:你能把 SSL 放在某些页面上而不放在其他页面上吗?还是它只在每个子域名上起作用?
非常感谢你的帮助
答案1
是的,但有一些注意事项。
2 个 SSL 主机需要不同的公共 IP 地址才能实现最大兼容性。有基于名称的 SSL,但 Apache不支持那。
没有什么可以阻止你为主站点的所有页面支持 SSL,并简单地SSLRequireSSL
在相关/login
区域使用 SSL 来拒绝没有 SSL 的访问。然后,你可以简单地将人们https://
从注册页面引导到登录页面,并在离开登录页面时返回http://
。
如果您想要更高级一点,可以使用重写选项来重定向使用“错误”协议连接的用户。我使用 Lighttpd 做了类似的事情。
是的。您需要 2 个证书,然后对要使用 SSL 保护的部分使用 SSLRequireSSL 选项。我建议使用改写比简单地拒绝访问 /signup 的 HTTP 连接更为友好。请参阅这一页有关如何执行此操作的示例。