2 domeny z 2 certyfikatami, 1 publiczny IP, 1 serwer nginx

0

Mam nadzieję, że możesz mi pomóc tutaj, ponieważ nie mogę zrozumieć, dlaczego tak się dzieje. Mam następujące 2 domeny:

  • alpha.com
  • beta.com

oba wskazują na ten sam adres IP serwera:

  • x.x.x.x

Mam jeden nginx działający na tym serwerze. Na mojej zaporze mam porty 80 i 443 przekazane do wewnętrznego adresu IP tego serwera;

  • 192.168.1.2

obie domeny mają własne certyfikaty.

Oto konfiguracja serwera dla obu tych domen:

Problem: Problem polega na tym, że kiedy idę do alpha.com, serwer przekierowuje mnie do http.s: //alpha.com i ładuje zawartość alpha.com, jak na razie jest świetny. Kiedy otwieram nową kartę w przeglądarce i wpisuję beta.com, adres URL mojej przeglądarki zmienia się na http: //beta.com, ale ładuje zawartość alpha.com.

W jaki sposób powiedziałbym nginxowi, aby na serwerze umieścił odpowiedni katalog dla każdej domeny na podstawie tego, który adres URL został wpisany w przeglądarce i nadal zachowuję https?

Dzięki.

Ahmad
źródło

Odpowiedzi:

0

Oba hosty wirtualne wskazują ten sam port na adresie zwrotnym.

Na co słuchasz http://127.0.0.1:2368?

Musisz skonfigurować tę usługę, aby nasłuchiwała na dwóch różnych portach i proxy dla każdego nginx vhost do własnego unikalnego portu.

ewatt
źródło
Dzięki @MyNameIsBoring. Nie ma usługi nasłuchującej na tym porcie. Usunąłem port. Teraz, po ponownym załadowaniu nginx, moja witryna alpha.com również się nie ładuje. Obie domeny pokazują odpowiedni certyfikat, ale nie załadowano żadnej zawartości. Początkowo, gdy miałem port, przynajmniej alpha.com ładowało się z odpowiednią treścią.
Ahmad
0

Spójrz na to ten post na Digital Ocean.

Jest to możliwe przez Identyfikacja nazwy serwera (SNI). Jest to względny niedawny dodatek do SSL. Wcześniej nie było możliwe, aby dwa (lub więcej) różnych nazw domen używały tego samego adresu IP do dostępu https.

NZD
źródło
Tak, znalazłem ten artykuł i uruchomiłem polecenie „nginx -V”, które mówi, że „obsługa TLS SNI włączona”
Ahmad
0

Właściwie znalazłem swój własny błąd, miałem platformę blogowania duchów działającą na jednej z domen i wordpress na drugiej. Rozwiązałem problem, usuwając następujący kod z pliku konfiguracyjnego nginx dla witryny wordpress.

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header HOST $http_host; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:2368;

FYI, port 2368, o którym wspomniano @MyNameIsBoring, jest używany przez port, więc ustawiłem odwrotne proxy na serwer 80 i 443. Oczywiście to nie działa dla wordpress, usuwając tę ​​część kodu, wszystko zaczyna działać jako oni powinni.

Ahmad
źródło
Właśnie miałem skomentować i powiedzieć, żebyś usunął tę całość location zablokuj, jeśli stamtąd nie było niczego.
ewatt