Puncte:0

Serviciul Web HTTPS și Serviciul Backend pe același Server

drapel ne

Există o modalitate de a configura un serviciu de backend pentru a asculta pe HTTPS pe un serviciu web deja existent, care este deja difuzat pe HTTPS?

Am avut inițial ambele fiind servite pe HTTP, dar recent am adăugat un CA pentru Serviciul Web. Ambele funcționează perfect pe HTTP, dar când încerc să accesez backend-ul (de la portul 5000) de la HTTPS, nu primesc niciun răspuns (inițial serveam backend-ul cu PM2). Aveam nevoie să actualizez apelurile ajax din front-end pentru a apela backend-ul pe HTTPS în loc de HTTP.

Am căutat să aplic NGINX pentru backend, dar nu pot găsi resurse pentru situația mea specifică și nu am nicio idee cum să configurez NGINX să asculte pe portul 5000 pentru HTTPS (ceea ce nu are sens pentru mine, deoarece HTTPS este portul 443).

Michael Hampton avatar
drapel cz
Vă rugăm să postați rezultatul lui `nginx -T`
Gerard H. Pille avatar
drapel in
Https nu este portul 443, acel protocol poate fi folosit pe orice port de către client și server.
Puncte:0
drapel za

Aceasta este o solicitare de bază, îi voi răspunde în mod generic deoarece Utilizatorul nu a furnizat suficiente informații pentru a fi mai precis. METOARE: Deci, acesta va răspunde în general.

Pre-informații

Utilizatorul spune că vrea să asculte sau să port 5000 pentru https

Redirecționare standard de la http la https

Server {
        nume_server *.domeniu.tld domeniu.tld;
        #ascultă pentru portul 80
        asculta 80;
        #redirecționare către https
        returnează 301 https://$host$request_uri; 
}

Ascultă NGINX pe portul 5000

Server {
        nume_server *.domeniu.tld domeniu.tld;
        #ascultă pentru Port 5000, http
        asculta 5000;
        #adaugă lucruri aici
}

Directiva standard de server https, folosind Certbot pentru generarea de certificate

Server {
        #ascultă pe 443 pentru SSL (https) cu http 1.0/1.1
        #ascultă 443 ssl;
        
        #Ascultă pe 44 pentru SSL (https) cu http 2
        asculta 443 ssl http2;
        
        #Ceea ce ascultăm pentru domeniu      
        nume_server *.domeniu.tld domeniu.tld;
                Locație / {
                rădăcină /var/www/vhosts/domain.tld;
}
    ssl_certificate /etc/letsencrypt/live/domain.tld/fullchain.pem; # gestionat de Certbot
    ssl_certificate_key /etc/letsencrypt/live/domain.tld/privkey.pem; # gestionat de Certbot
}

Basic Reverse-Proxy Ascultați pe portul 80 http ȘI pe portul 443 SSL

Server {
        #ascultă pe 80 pentru https cu http 1.0/1.1
        asculta 80;
        
        #ascultă pe 80 pentru https cu http 2 (dezactivat, certbot nu îl înțelege pe portul 80)
        #ascultă 80 http2;

        #ascultă pe 443 pentru SSL (https) cu http 1.0/1.1
        #ascultă 443 ssl;
        
        #Ascultă pe 44 pentru SSL (https) cu http 2
        asculta 443 ssl http2;
        
        #Ceea ce ascultăm pentru domeniu      
        nume_server *.domeniu.tld domeniu.tld;
                Locație / {
                        proxy_pass http://127.0.0.1:5000;

                        #https chiar funcționează
                        #proxy_pass https://127.0.0.1:5000;                            
                        proxy_set_header Gazdă $http_host;
}
    ssl_certificate /etc/letsencrypt/live/domain.tld/fullchain.pem; # condus de 
    Certbot
    ssl_certificate_key /etc/letsencrypt/live/domain.tld/privkey.pem; # condus de 
    Certbot
}

Concluzii

Dacă doriți să ajungeți la Backend-ul dvs. pe Port 5000, trebuie să utilizați proxy_pass, dacă doriți ca NGINX să asculte pe portul 5000, în cazul în care nu a fost folosit, ascultați asculta 5000 ssl;

Și, de asemenea, așa cum au spus deja alții, SSL este un protocol și nu este legat de un anumit port, este de obicei folosit 443, dar nu trebuie să-l asculte, aș putea folosi și 61337 pentru el.

Voi actualiza Răspunsul în cazul în care OP va actualiza întrebarea

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.