2016-10-19 67 views
0

我知道PHP的內置Web服務器並非設計用於使用https,但我正在構建一個只能與https協同工作的API,例如,當我的測試也測試正確的行爲時不使用https輸入API。https與Symfony的內置服務器

是否有任何快速解決方法,以便我可以使用https和Symfony的內置Web服務器?

+0

使用'pound'代理。 – malcolm

+0

你應該看看這個:http://stackoverflow.com/a/23937688/1806461 – t0mas3

回答

0

可以使用Pound反向代理:

WHAT磅是:

  • 一個SSL包裝:鎊將解密從客戶端瀏覽器的HTTPS請求,並將它們傳遞作爲純HTTP到後端服務器。
  • +0

    但是,如果它作爲普通的HTTP傳遞到我的後端服務器的請求,那麼我的腳本將看到它作爲非https連接和拋出錯誤,如果我是對的? – user2394156

    +0

    不,您可以在需要時爲您的應用程序設置英鎊的標題:'X-Forwarded-Proto:https'和'X-Forwarded-Port:443'。 – malcolm

    0

    可能不是你想要的,但也許值得一兩思考。

    在生產環境中,您需要確保只有HTTPS有效。這意味着:通過HTTP進入的請求應該被丟棄或轉發給HTTPS或其他任何東西。你可以通過app.php(這應該是Symfony全新安裝中的默認設置)調用服務來測試。

    如果上述測試成功,所有其他測試都可以安全地假設在生產中會有HTTPS。所以它們也可以用HTTP來執行,因爲它們只是測試應用程序本身的功能,而不是HTTPS的任何功能。在這種情況下使用app_dev.php就足夠了。

    即,僅在您的生產設置中強制HTTPS,但不在您的開發設置中。針對非HTTP請求的正確行爲執行生產設置的測試,其餘部分針對開發設置進行測試。

    非HTTPS處理是否正常工作?

    http://your.local.host/app.php 
    

    該應用程序是否做得很好?

    http://your.local.host/app_dev.php