OpenSSL не работает с встроенным веб-сервером PHP

ОС: Ubuntu 12.04 64-разрядный

Версия PHP: 5.4.6-2 ~ exact + 1

Когда я тестирую https-страницу, я пишу через встроенный веб-сервер (php5 -S localhost: 8000), Firefox (16.0.1) говорит: "Проблема загрузки: соединение было прервано", а терминал говорит мне: 1: 37026 Недействительный запрос (неподдерживаемый запрос SSL) ".

phpinfo() говорит мне:

  • Зарегистрированные потоковые Socket Transports: tcp, udp, unix, udg, ssl, sslv3, TLS
  • [curl] SSL: Да
  • Версия SSL: OpenSSL/1.0.1
  • OpenSSL:

    Поддержка OpenSSL: включена

    OpenSSL Library Version OpenSSL 1.0.1 14 марта 2012 г.

    OpenSSL Header Version OpenSSL 1.0.1 14 марта 2012

Да, страницы http работают нормально.

Любые идеи?

Ответы

Ответ 1

См. раздел руководства по встроенному веб-серверу:
http://php.net/manual/en/features.commandline.webserver.php

Он не поддерживает шифрование SSL. Это для простых HTTP-запросов. Поддержка расширения и поддержки openssl не связана. Он не принимает запросы или отправляет ответы поверх оберток потока.

Если вы хотите, чтобы SSL работал над ним, попробуйте stunnel wrapper:

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

Он просто подходит для всех.