Il certificato SSL Nginx è stato utilizzato per tutti i nomi di server per risolvere il server IP

Dato che sono presenti 2 sottodomini configurati nel DNS (in modo da pingare entrambi la risposta per entrambi con l'indirizzo IP del mio server) e per questi sottodomini sono 2 diversi certificati TLS.

Ho configurato nginx in questo modo:

  • haproxy + stunnel + tenere vivo?
  • Nginx: Come faccio a inoltrare una richiesta di http ad un'altra port?
  • Principali differenze tra SSI (Side Include Server) e ESI (Edge Side include)
  • node.js 0.4.0 non serve ai file IP esterni
  • Perché il mio server nginx riceve richieste di targeting ads.yahoo.com?
  • Come posso fare nginx riconoscere directory con spazi nel suo nome?
  • # If we receive X-Forwarded-Proto, pass it through; otherwise, pass along the # scheme used to connect to this server map $http_x_forwarded_proto $proxy_x_forwarded_proto { default $http_x_forwarded_proto; '' $scheme; } # If we receive Upgrade, set Connection to "upgrade"; otherwise, delete any # Connection header that may have been passed to this server map $http_upgrade $proxy_connection { default upgrade; '' ''; } gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; access_log /var/log/nginx.log; error_log /var/log/nginx_errors.log; # HTTP 1.1 support proxy_http_version 1.1; proxy_buffering off; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $proxy_connection; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto; server { listen 80 default_server; server_name _; # This is just an invalid value which will never trigger on a real hostname. return 503; server_tokens off; # Hide the nginx version } upstream sub1.domain.tld { server 172.17.0.27:5000; } server { server_name sub1.domain.tld; server_tokens off; # Hide the nginx version listen 443 ssl; ssl_certificate /etc/nginx/ssl/sub1.domain.tld.crt; ssl_certificate_key /etc/nginx/ssl/sub1.domain.tld.key; location / { auth_basic "Restricted"; auth_basic_user_file /etc/nginx/htpasswd/sub1.htpasswd; proxy_pass http://sub1.domain.tld; } } 

    A questo punto, se vado a https://sub1.domain.tld tutto sta funzionando bene. Ora, se cerco di accedere a https://sub2.domain.tld che non è ancora configurato e quindi non dovrebbe rispondere accettare la connessione e mostrare un problema con il certificato in quanto non corrisponde al nome del server, quindi sembra che con questa configuration, Nginx invia il certificato per tutte le richieste alla port 443.

    Come devo modificare la mia configuration in modo che l'accesso a https://sub2.domain.tld non https://sub2.domain.tld riuscito (ad esempio con un errore 503) finché non la configura aggiungendo una nuova istruzione server ?

  • Principali differenze tra SSI (Side Include Server) e ESI (Edge Side include)
  • nginx - il corpo di richiesta del client è bufferizzato in un file temporaneo
  • Comando / metodo per trovare l'up-time del daemon server SSH & Nginx
  • Configurare nginx per jboss / tomcat
  • Vantaggi dell'utilizzo di Nginx o HA Proxy come Load Balancer
  • Inherite dalla cartella principale se è spostato / copiato in un'altra directory nello stesso volume
  • 2 Solutions collect form web for “Il certificato SSL Nginx è stato utilizzato per tutti i nomi di server per risolvere il server IP”

    È ansible aggiungere un altro block di server come questo:

     server { listen 443 ssl default_server; server_name _; ssl_certificate /etc/nginx/ssl/default.crt; ssl_certificate_key /etc/nginx/ssl/default.key; return 503; } 

    Per il certificato predefinito, è ansible creare un certificato auto-firmato. Questo innescherà un errore di certificato non valido sul client, come detto Steffen. Se l'utente accetta il certificato, riceverà il codice di stato 503.

    Se si ascolta la port TCP 443 su un IP specifico, accetterà nuove connessioni TCP in questa port anche se solo SSL è configurato per alcuni dei domini risolti in questo indirizzo IP. E una volta stabilita la connessione TCP, farà la stretta di mano SSL e seleziona il certificato più adatto, cioè il certificato corrispondente se SNI viene utilizzato (cioè il client invia il nome host atteso nella stretta di mano SSL) o un altro certificato se non può determinare il nome host richiesto o se nessun certificato è configurato per questo nome.

    Ciò significa che è necessario disporre di certificati per tutti i domini accessibili in questo indirizzo IP o accettare che l'accesso a domini senza certificati corretti causerà errori come certificati non validi. Questo non è specifico per nginx ma è perché SSL è uno strato in cima a TCP e le informazioni sull'host richiesto vengono trasmesse solo all'interno della connessione TCP stabilita.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.