2012-10-18 38 views
15

OS:的Ubuntu 12.04 64位OpenSSL的不是PHP內置的Web服務器工作

PHP版本: 5.4.6-2〜精確+ 1

當我測試HTTPS頁面我我正在通過內置的web服務器(php5 -S localhost:8000),Firefox(16.0.1)說「加載問題:連接中斷」,而終端告訴我「:: 1:37026無效的請求(不受支持的SSL請求)」。

的phpinfo()告訴我:

  • 註冊流式套接字的Transport:TCP,UDP,UNIX,UDG,SSL,SSLV3, TLS
  • [捲曲] SSL:是
  • SSL版本:OpenSSL的/ 1.0.1
  • 的OpenSSL:

    OpenSSL的支持:啓用

    OpenSSL庫OpenSSL版本1.0.1 2012年3月14日

    OpenSSL的頭版本的OpenSSL 1.0.1 2012年3月14日

是,HTTP頁面的工作就好了。

任何想法?

+0

應該可能在ServerFault上。 – quantum

+0

不完全是你想要的,但你可以嘗試ngrok http://stackoverflow.com/a/23243958/632951 – Pacerier

回答

31

查看內置網絡服務器墊片手冊部分:
http://php.net/manual/en/features.commandline.webserver.php

它不支持SSL加密。這是純粹的HTTP請求。 openssl擴展和功能支持是無關的。它不接受請求或通過流封裝發送響應。

如果你想SSL超過它運行,嘗試stunnel包裝:

php -S localhost:8000 & 
stunnel3 -d 443 -r 8080 

這只是反正玩弄。

+1

在哪裏可以找到採用這些選項的stunnel版本?根據stunnel.org上的文檔,可用的應用程序不會使用「-d」或「-r」選項。 –

+1

使用[stunnel3](http://man.devl.cz/man/8/stunnel3)。看起來'stunnel4'主要作爲守護進程/通過iptables運行,並且需要一個配置文件。 – mario

+0

哦,我明白了...... stunnel3 Perl程序位於這裏:https://www.stunnel.org/downloads/stunnel3(這也包含在發行版中。)感謝您的澄清。 –