Strona 1 z 1

nginx - certyfikat SSL dla danej strony

: 17 marca 2010, 09:27
autor: pablow
Witam.
Mam kilka domen na serwerze i kilka subdomen dla danych domen.
Korzystam z nginx-a i mam tam wszystko ustawione dla danej domeny.
Dla jednej z subdomen mam:

Kod: Zaznacz cały

[url=http://wiki.nginx.org/NginxHttpCoreModule#server]server[/URL] {
    [url=http://wiki.nginx.org/NginxHttpCoreModule#server_name]server_name[/URL] konto1.domena.pl;
    [url=http://wiki.nginx.org/NginxHttpCoreModule#listen]listen[/URL] 198.22.41.12:443;
    [url=http://wiki.nginx.org/NginxHttpSslModule#ssl]ssl[/URL] on;
    [url=http://wiki.nginx.org/NginxHttpSslModule#ssl_certificate]ssl_certificate[/URL] /etc/ssl/[url=http://wiki.nginx.org/NginxHttpCoreModule#server]server[/URL].crt;
    [url=http://wiki.nginx.org/NginxHttpSslModule#ssl_certificate_key]ssl_certificate_key[/URL] /etc/ssl/[url=http://wiki.nginx.org/NginxHttpCoreModule#server]server[/URL].key;
}
I dla tej subdomeny działa https:// i chcę dla drugiej subdomeny utworzyć też oddzielny certyfikat:

Kod: Zaznacz cały

[url=http://wiki.nginx.org/NginxHttpCoreModule#server]server[/URL] {
    [url=http://wiki.nginx.org/NginxHttpCoreModule#server_name]server_name[/URL] ankieta.domena.pl;
    [url=http://wiki.nginx.org/NginxHttpCoreModule#listen]listen[/URL] 198.22.41.12:443;
    [url=http://wiki.nginx.org/NginxHttpSslModule#ssl]ssl[/URL] on;
    [url=http://wiki.nginx.org/NginxHttpSslModule#ssl_certificate]ssl_certificate[/URL] /etc/ssl/[url=http://wiki.nginx.org/NginxHttpCoreModule#server]server2[/URL].crt;
    [url=http://wiki.nginx.org/NginxHttpSslModule#ssl_certificate_key]ssl_certificate_key[/URL] /etc/ssl/[url=http://wiki.nginx.org/NginxHttpCoreModule#server]server2[/URL].key;
} 
Jednakże jak otwieram:

Kod: Zaznacz cały

https://ankieta.domena.pl
to wywala mi certyfikat dla tamtej subdomeny.
I jak chcę wyświetlić domenę całą

Kod: Zaznacz cały

https://domena.pl
to wywala ten sam certyfikat co dla:

Kod: Zaznacz cały

konto1.domena.pl

Dodam iż wygenerowałem nowy certyfikat dla tej drugiej subdomeny i wpisałem jako ,,Common Name'' przy generowaniu:

Kod: Zaznacz cały

ankieta.domena.pl 
Proszę o pomoc.

: 17 marca 2010, 09:30
autor: lessmian2
Na jednym adresie IP możesz mieć tylko jeden certyfikat SSL.

: 17 marca 2010, 10:13
autor: bartek
lessmian2 pisze:Na jednym adresie IP możesz mieć tylko jeden certyfikat SSL.
nginx nie ma na ten moment takiej możliwości

Najnowsze wersje apache2 wspierają podpięcia certyfikatów dla wielu wirtualek - http://wiki.apache.org/httpd/CommonMisc ... _interface.

ps. wersja z lenny tego nie wspiera dopiero squeeze, Multiple SSL VirtualHosts jest dostępne od wersji 2.2.12 w górę:
It is possible, but only if using a 2.2.12 or later web server, built with 0.9.8j or later OpenSSL

: 18 marca 2010, 16:05
autor: timor
Jest proste rozwiązanie które często jest wystarczające.
Wystawiasz drugi certyfikat na innym porcie, np. jeśli piersza strona wystawia ssl'a na 443 to druga niech wystawi na 444.
Żeby to wygodnie działało to warto ustawić sobie też vhosty dla tych domen ale na porcie 80 (bez ssl'a) z przekierowaniem na odpowiednie strony razem z portami. Czyli wejdziesz na http://domena.pl to połączy się z wersją nieszyfrowaną i przekieruj to na https://domena.pl. A jak wchodzisz na http://ankieta.domena.pl to przekierowujesz na https://ankieta.domena.pl:444/
No i zadbaj aby każdy kolejny port był dostępny na zewnątrz.

Minusem takiej konfiguracji może być fakt, że domyślnie SSL powinien być na 443 i jak ktoś ma zbyt restrykcyjnego firewalla to nie wbije się na 444 (bo będzie zablokowany).

Mam nadzieję, że nie pogmatwałem... zbytnio :)

: 18 marca 2010, 19:26
autor: lessmian2
pablow, jeśli chcesz zabezpieczyć subdomeny w ramach jednej domeny głównej, możesz również użyć certyfikatu wildcard (taki który w polu CommonName ma np. *.mojadomena.pl). O ile oczywiście masz taką możliwość.