nginx - certyfikat SSL dla danej strony

Konfiguracja serwerów, usług, itp.
pablow
Posty: 20
Rejestracja: 09 marca 2010, 19:15

nginx - certyfikat SSL dla danej strony

Post 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.
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

Na jednym adresie IP możesz mieć tylko jeden certyfikat SSL.
bartek
Beginner
Posty: 129
Rejestracja: 01 maja 2006, 08:14

Post 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
Awatar użytkownika
timor
Beginner
Posty: 111
Rejestracja: 18 sierpnia 2009, 23:40

Post 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 :)
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post 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ść.
ODPOWIEDZ