Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: earl в Jul 15, 2004, 12:19



Титла: Apache + mod_ssl
Публикувано от: earl в Jul 15, 2004, 12:19
Наложи ми се да използвам ssl с Apache обаче нещата
с настройките не излезнаха толкова прости!

Добавих в httpd.conf:
LoadModule ssl_module /usr/libexec/libssl.so , сложих си сертификатите и
новия виртуален хост за 'https://'
Port 80
Port 443
NameVitrtualHost www.domain.net:80,443

<VirtualHost www.domain.net:443>
DocumentRoot /www/https/
...
</VirtualHost>


Преди тeзи записи има същото за порт 80, което продължава
да си работи с пълна сила! -
Port 80
<VirtualHost www.domain.net:80>
DocumentRoot /www/http/
...
</VirtualHost>

Но httpd -t винаги ми връща едно и също:
> module mod_ssl.c is already added, skipping
> NameVirtualHost www.domain.net:443 has no VirtualHosts
> Syntax OK

На практика порт 443 си остава closed.
Трябва да има някакъв момент който не ми е както трябва, но не мога да схвана кой е.
Има ли някой идея как да реша проблема?

PS Мисля може ServerName и за порт 80 и за порт 443 да е
един и същ хост, защото в случая е един и същ.

---
с почернен шрифт са новите неща в httpd.conf


Титла: Apache + mod_ssl
Публикувано от: в Jul 15, 2004, 12:41
Цитат (earl @ Юли 15 2004,13:19)
Наложи ми се да използвам ssl с Apache обаче нещата
с настройките не излезнаха толкова прости!

Добавих в httpd.conf:
LoadModule ssl_module /usr/libexec/libssl.so , сложих си сертификатите и
новия виртуален хост за 'https://'
Port 80
Port 443
NameVitrtualHost www.domain.net:80,443

<VirtualHost www.domain.net:443>
DocumentRoot /www/https/
...
</VirtualHost>


Преди тeзи записи има същото за порт 80, което продължава
да си работи с пълна сила! -
Port 80
<VirtualHost www.domain.net:80>
DocumentRoot /www/http/
...
</VirtualHost>

Но httpd -t винаги ми връща едно и също:
> module mod_ssl.c is already added, skipping
> NameVirtualHost www.domain.net:443 has no VirtualHosts
> Syntax OK

На практика порт 443 си остава closed.
Трябва да има някакъв момент който не ми е както трябва, но не мога да схвана кой е.
Има ли някой идея как да реша проблема?

PS Мисля може ServerName и за порт 80 и за порт 443 да е
един и същ хост, защото в случая е един и същ.

---
с почернен шрифт са новите неща в httpd.conf

здравей,

до колкото си спомням трябва да укажеш с Listen 443, а не с Port 443. не помня каква точно беше разликата, но пробвай все пак.


Титла: Apache + mod_ssl
Публикувано от: earl в Jul 15, 2004, 12:58
Имам го сложен в <IfDefine SSL> клауза.
Мислех си че проблема идва от това, че SSLEngine On e след тези редове, но и от това не е? Продължва да връща

NameVirtualHost www.domain.net:443 has no VirtualHosts
Syntax OK



Титла: Apache + mod_ssl
Публикувано от: в Jul 15, 2004, 13:13
интересен проблем. до колкото виждам в документацията никъде не се споменава, че можеш да ползваш 2 порта за един NameVirtualHost, разделени със запетая. т.е. опитай

NameVitrtualHost www.domain.net:80,443
да го направиш на
NameVitrtualHost www.domain.net:80
NameVitrtualHost www.domain.net:443


Титла: Apache + mod_ssl
Публикувано от: earl в Jul 15, 2004, 14:15
Аналогични са записите. Не мога да ти кажа къде съм го виждал.  

Удивих се доста от тоя проблем.
Ето как точно ми изглежда VirtualHost-a да не би пък тук да бъркам нещо?!

Примерен код

<VirtualHost www.domain.net:443>
DocumentRoot /www/htdocs/https
ServerName www.domain.net
ServerPath /https
ServerAdmin [EMAIL=webmaster@domain.net]webmaster@domain.net[/EMAIL]
ScriptAlias /cgi-bin/ /www/htdocs/https/cgi-bin/
ErrorLog /var/log/apache/error_ssl_log
TransferLog /var/log/apache/access_ssl_log

SSLEngine on

SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /usr/local/apache/apache-certs/server.crt
SSLCertificateKeyFile /usr/local/apache/apache-certs/server.key

<Directory "/www/htdocs/https/cgi-bin">
    SSLOptions +StdEnvVars +CompatEnvVars
</Directory>

SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

</VirtualHost>


Титла: Apache + mod_ssl
Публикувано от: peio в Jul 15, 2004, 16:18
А сертификати направил ли си си? SSL без двойка ключове няма как да подкараш. Прочети внимателно документацията на  modssl.org.
Кажи и с каква дистрибуция го пробваш, защото различните дистрибуции го правят различно трудно.


Титла: Apache + mod_ssl
Публикувано от: earl в Jul 15, 2004, 16:27
Slackware9 e дистрибуцията.
Направил съм self-signed сертификат и ключ - server.crt и server.key. И според мен работят:

Apache/1.3.28 mod_ssl/2.8.15 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide us with the pass phrases.

Server www.domain.net:443 (RSA)
Enter pass phrase:

Ok: Pass Phrase Dialog successful.


Титла: Apache + mod_ssl
Публикувано от: в Jul 15, 2004, 16:59
и сигурно си стартирал apache със startssl? всичко изглежда наред, така че проблемът е някакъв много тъп  :)


Титла: Apache + mod_ssl
Публикувано от: earl в Jul 15, 2004, 17:06
Прав си че е тъпня. Не съм го стратирал с това чудо. Обаче виж на какво попаднах из mailarchives на Apache -

The problem is that the packet is encrypted so apache can't see the Host
header so doesn't know what VH to use. But it needs the VH in  order to
decide on the cert - it's a classic Catch-22. There is no workaround (we
had a guy today trying rewrite rules - marks for originality, but no
cigar). You have to use separate IPs or ports...

Rgds,

Owen Boyle


Ще пробвам да видя по ip какво ще ревне. Мерси за съдействието!