2017-05-26 70 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