apache ssl

bars80081

Новичок
пытаюсь установить апач с поддержкой https

то есть, чтобы сервер перерабатывал запросы https://localhost/page.php

скачал httpd-2.2.22-win32-x86-openssl-0.9.8t.msi и нашёл качественную инструкцию здесь, очень помогла, и вроде всё встало.

в итоге сервер цепляет запрос https://localhost/ , браузер жалуется на недостоверность сертификата, но работает с ними. однако, сайт, доступный по http://localhost/ не доступен. вместо него вижу файловую структуру в браузере D:\apache , хотя сам сайт лежит в D:\apache\localhost , куда его направлял httpd-vhosts.conf :

<VirtualHost *:80>
DocumentRoot "D:/apache/localhost/www"
ServerName localhost
ErrorLog "D:/apache/localhost/error.log"
CustomLog "D:/apache/localhost/access.log" common
</VirtualHost>

попытка поставить такое:
<VirtualHost *:443>
DocumentRoot "D:/apache/localhost/www"
ServerName localhost
ErrorLog "D:/apache/localhost/error.log"
CustomLog "D:/apache/localhost/access.log" common
</VirtualHost>
не даёт запустить сервер с ошибкой: the request operation has failed


чего тут не хватает?

в конфиге прописаны (согласно инструкции по ссылке выше)
Listen 80
Listen 443
 
несовсем уверен, но кажись в виндах нужно хост писать
<VirtualHost 127.0.0.1:443>

а еще строчек типа нехватает
SSLEngine On
SSLProtocol all
SSLCertificateFile /etc/apache2/ssl/файл.crt
SSLCertificateKeyFile /etc/apache2/ssl/wфайл.key
SSLCACertificateFile /etc/apache2/ssl/файл.pem

и их (файлы) сгенерить конечно нужно...
 
в п.17 инструкции из ссылки в первом посте указана команда, которая единственная вызывает у меня вопросы по выполнению.

Останавливаем Apache если он был запущен и запускаем его из командной строки с ключом -D SSL. Для этого даем команду
Z:\WAMPServer\Apache\bin>httpd.exe -D SSL
Запускать лучше из командной строки с ключом отладки SSL, чтобы можно было увидеть ошибки.

не сказано, что должно в итоге получиться. при выполнении этой команды получается следующее:

C:\Program Files\Apache Software Foundation\Apache2.2\bin>httpd.exe -D SSL
httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.1.53 for ServerName
[Mon Aug 13 09:55:24 2012] [warn] VirtualHost 127.0.0.1:443 overlaps with VirtualHost localhost:443, the first has precedence, perhaps you need a NameVirtualHost directive

сам сервер при этом запускается, хотя монитор апача остаётся в положении "стоп". сайты на http работают, а https ведёт себя в зависимости от записей в httpd-vhosts.conf (см. ниже). особенно фигово то, что при этом командная строка зависает, что явно не может быть нормальным режимом работы

как я понимаю, тут где-то ошибка. может быть, в последовательности генерации всех этих файлов?
при выполнении команд
openssl rsa -in privkey.pem -out my-server.key
openssl x509 -in my-server.csr -out my-server.cert -req -signkey my-server.key -days 365
openssl x509 -in my-server.cert -out my-server.der.crt -outform DER
необходимо указать ряд данных, определяющих домен и прочее. делал как написано: картинка 1, картинка 2 (с поправкой на размещение своего сервера)




-----------------------------------------------------------------------------------------------------------------------------
ответ wmix.151

в conf/httpd.cong у меня прописано:

<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
SSLMutex default
SSLSessionCache none
</IfModule>


<VirtualHost localhost:443>
SSLEngine On
SSLProtocol all
SSLCertificateFile conf/ssl/my-server.cert
SSLCertificateKeyFile conf/ssl/my-server.key
#SSLCACertificateFile conf/ssl/privkey.pem
</VirtualHost>

все указанные файлы сгенерированы и в указанной папке
раскомментирование последней строчки вызывает the request operation has failed при запуске сервера

в инструкции по ссылке в первом посте она не была указана

в httpd-vhosts.conf:

если блок закомментирован
#<VirtualHost *:443>
# DocumentRoot "D:/apache/localhost/www"
# ServerName localhost
# ErrorLog "D:/apache/localhost/error.log"
# CustomLog "D:/apache/localhost/access.log" common
#</VirtualHost>
https в браузере работает, но сервер не подхватывает и не показывает сайт, а просто показывает файловый каталог

если раскомментированы:
<VirtualHost *:443>
DocumentRoot "D:/apache/localhost/www"
ServerName localhost
ErrorLog "D:/apache/localhost/error.log"
CustomLog "D:/apache/localhost/access.log" common
</VirtualHost>
то сервер не запускается с ошибкой the request operation has failed

если
<VirtualHost 127.0.0.1:443>
DocumentRoot "D:/apache/localhost/www"
ServerName localhost
ErrorLog "D:/apache/localhost/error.log"
CustomLog "D:/apache/localhost/access.log" common
</VirtualHost>
то сервер запускается, то обращение https://localhost/ вызывает в файерфоксе:
Ошибка при установлении защищённого соединения
При соединении с localhost произошла ошибка.
SSL получило запись с неизвестным типом содержимого.
(Код ошибки: ssl_error_rx_unknown_record_type)
в хроме:
Ошибка подключения SSL
Не удается создать безопасное соединение с сервером. На сервере могла возникнуть проблема, или необходим сертификат клиентской аутентификации, который у вас отсутствует.
Ошибка 107 (net::ERR_SSL_PROTOCOL_ERROR): Ошибка протокола SSL.
хотя сайт по простому протоколу http://localhost работает
 
Could not reliably determine the server's fully qualified domain name, using 192.168.1.53 for ServerN не обращай пока внимание

а VirtualHost 127.0.0.1:443 overlaps with VirtualHost localhost:443 это поприкольнее... ты просто написал 2 раза
<VirtualHost 127.0.0.1:443>
...
<VirtualHost localhost:443>

Оприделись что ты хочешь, говорит тебе апаче.... запись localhost:443 убери
<VirtualHost *:443> тож убери пока
<VirtualHost 127.0.0.1:80> а такое добавь всеже... как же без простого хттп
 
незнаю нормально это или нет что команда зависает, чес слово никогда не создавал хттпс на виндах, но на всякий случай, апаче это сервер - те работает непрерывно!
openssl команды это просто ключики ты генеришь судя повсему ты все сделал правильно...
монитор апача ты про WAMP ? определись где ты запускаешь консоль или через ВАМП
 
Сверху