Je me rends compte que cela ressemble à un double d'au moins quelques autres questions, mais je les ai lues plusieurs fois et je fais toujours quelque chose de mal.
Voici le contenu de mon fichier de configuration nginx myexample.com situé dans /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;
}
Cela fonctionne, lorsque je vais sur https://myexample.com, le contenu est servi et la connexion est sécurisée. Donc, cette configuration semble bonne.
Maintenant, si je change le port ssl en 9443 et que je recharge la configuration nginx, la config se recharge sans erreur, mais visiter https://myexample.com montre une erreur dans le navigateur (Ce site ne peut pas être atteint / myexample.com a refusé de connectez. ERR_CONNECTION_REFUSED)
J'ai essayé des suggestions et de la documentation ici , ici et ici (entre autres) mais j'obtiens toujours l'erreur ERR_CONNECTION_REFUSED.
Je dois noter que je peux utiliser un port non standard, puis taper explicitement ce port dans l'URL, par exemple, https://myexample.com:9443 . Mais je ne veux pas faire ça. Ce que je veux, c'est qu'un utilisateur puisse taper myexample.com dans n'importe quel navigateur et que la redirection nginx vers la connexion sécurisée soit automatique.
Encore une fois, je n'ai aucun problème lorsque j'utilise le port SSL 443 standard.
Edit: j'utilise nginx / 1.6.2 sur debian / jessie
Réponses:
Pour prendre en charge la saisie " https://myexample.com " dans votre navigateur et de le faire gérer par l'
nginx
écoute de configuration sur le port 9443, vous aurez besoin d'unenginx
configuration supplémentaire qui écoute toujours sur le port 443, car il s'agit du port IP à auquel le navigateur se connecte .Donc:
Notez que le même certificat / clé est nécessaire pour les deux sections, car le certificat est généralement lié au nom d'hôte DNS, mais pas nécessairement au port.
J'espère que cela t'aides!
la source
Lorsque vous tapez https://example.com , la norme pour le schéma https: // est de se connecter au port 443. Dans votre cas, vous avez déplacé votre serveur pour qu'il écoute maintenant sur le port 9443. La connexion est refusée message à cause de cela - rien n'écoute sur le port 443.
Vous devrez organiser une écoute sur le port 443 qui redirige les connexions vers le port 9443 ou utiliser un port dans le cadre de l'URL.
la source
si vous changez le port en un port non standard comme 9443, vous devez ajouter une redirection de 443 à 9443. Définissez nginx pour inverser le proxy sur ce port.
la source