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
Он просто подходит для всех.