Zdaję sobie sprawę, że wygląda to na duplikat co najmniej kilku innych pytań, ale czytałem je kilka razy i wciąż robię coś złego.
Poniżej znajduje się zawartość mojego pliku konfiguracyjnego nexx myexample.com znajdującego się w /etc/nginx/sites-available
.
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name myexample.com www.myexample.com;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
ssl_certificate /etc/letsencrypt/live/myexample.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/myexample.com/privkey.pem;
#Configures the publicly served root directory
#Configures the index file to be served
root /var/www/myexample.com;
index index.html index.htm;
}
Działa, kiedy wchodzę na https://myexample.com, treść jest obsługiwana, a połączenie jest bezpieczne. Więc ta konfiguracja wydaje się być dobra.
Teraz, jeśli zmienię port ssl na 9443 i przeładuję konfigurację nginx, konfiguracja przeładuje się bez błędów, ale odwiedzanie https://myexample.com pokazuje błąd w przeglądarce (nie można uzyskać dostępu do tej witryny / myexample.com odmówił połączyć. ERR_CONNECTION_REFUSED)
Próbowałem sugestii i dokumentacji tutaj , tutaj i tutaj (między innymi), ale zawsze pojawia się błąd ERR_CONNECTION_REFUSED.
Powinienem zauważyć, że mogę użyć niestandardowego portu, a następnie jawnie wpisać ten port w adres URL, np . Https://myexample.com:9443 . Ale nie chcę tego robić. Chcę, aby użytkownik mógł wpisać myexample.com w dowolnej przeglądarce i automatycznie przekierowywać nginx do bezpiecznego połączenia.
Ponownie nie mam żadnych problemów, gdy korzystam ze standardowego portu 443 SSL.
Edycja: Używam nginx / 1.6.2 na debian / jessie
Odpowiedzi:
W celu wsparcia wpisując „ https://myexample.com ” w przeglądarce, i mając to obsługiwane przez
nginx
słuchanie config na porcie 9443, trzeba będzie dodatkowynginx
config że nadal nasłuchuje na porcie 443, ponieważ jest to port IP które łączy przeglądarka .A zatem:
Zauważ, że ten sam certyfikat / klucz jest potrzebny w obu sekcjach, ponieważ certyfikat jest zwykle powiązany z nazwą hosta DNS, ale niekoniecznie z portem.
Mam nadzieję że to pomoże!
źródło
Po wpisaniu https://example.com standardem schematu https: // jest połączenie z portem 443. W twoim przypadku serwer został przeniesiony, aby teraz nasłuchiwał na porcie 9443. Otrzymujesz połączenie odrzucone wiadomość z tego powodu - nic nie nasłuchuje na porcie 443.
Konieczne będzie zorganizowanie podsłuchu na porcie 443, który przekieruje połączenia do portu 9443 lub użycie portu jako części adresu URL.
źródło
jeśli zmienisz port na niestandardowy, taki jak 9443, musisz dodać przekierowanie z 443 na 9443. Ustaw nginx na odwrotne proxy do tego portu.
źródło