2017-05-26 72 views
0

我很新的安全(证书),并不理解它是如何工作的。 我有IIS服务器和证书已安装。我可以用两种不同的方式打开我的网站: http://website和 'https://website'。 当我打开它作为http然后在地址栏中,我可以看到,说网站不安全,如果我打开它作为https然后挂锁出现。 但我不明白在这种情况下安全在哪里。如何用php控制它? 我可以检查网站是否有$_SERVER['HTTPS'] != 'on',然后让用户访问,但如果我从服务器删除证书,我仍然可以访问为“https”,但浏览器说这不是安全的网站,但$_SERVER['HTTPS']仍然显示为on 我如何控制安全?如何检查网站是否安全使用PHP

+1

知道或关心客户端连接的安全性并不是真正取决于PHP。在Nginx上'$ _SERVER ['HTTPS']'甚至不准确。如果你想强制执行HTTPS,那么使用'.htaccess'或Nginx配置将'301'从HTTP重定向到HTTPS。 – Flosculus

+0

我想我现在明白了。所以我可以启用IIS来强制他们使用SSL。 – Klapsius

+1

确切地说,HTTPS应该由HTTP服务器来处理,在这个实例中的PHP应该只负责认证用户证书并提供内容。顺便说一句,我认为我完全了解你正在使用IIS抱歉大声笑的事实 – Flosculus

回答

1

如果您通过https访问网页,浏览器会用SSL对您的请求进行编码。 如果您通过您的访问访问网页未编码。 证书只是用户证明编码是安全的。变量$ _SERVER ['HTTPS']只是说用户是通过https还是http访问了页面。

+0

小调整,证书是证明服务器连接到他们说他们是谁。 – Flosculus

+0

所以我不能识别'php'如果用SSL编码然后'好吧'否则拒绝? – Klapsius

+0

是的,并感谢Flosculus进行调整。 – knurzl