2016-04-15 1 views
0

J'ai donc un serveur Apache fonctionnant sur le port 443 et NodeJS installé sur la dernière version d'Ubuntu. Maintenant, tout fonctionne parfaitement, sauf qu'il n'y a pas de SSL sur le port sur lequel tourne mon serveur NodeJS, le port 100.Couverture LetsEncrypt sur différents ports

Lorsque je le commute sur le port 80 et exécute le serveur via sudo, il génère une erreur, donc je ne peux certainement pas faire ça. Y at-il une solution pour être en mesure d'avoir la couverture SSL LetsEncrypt sur les ports autres que 443 et 80?

Répondre

0

Le port 80 est le port standard pour http (sans cryptage).

Le port 443 est le port standard pour https (avec cryptage).

Par port standard, je veux dire que les navigateurs web connaissent ces ports et ne vous attendez donc pas à donner explicitement le port. Donc, https://www.example.com et https://www.example.com:443 sont les mêmes mais comme vous utilisez le port standard, il n'est pas nécessaire d'inclure la partie: 443 car le navigateur le fera pour vous.

Vous pouvez avoir SSL sur n'importe quel port car il est complètement indépendant du port bien qu'il existe ces conventions standard. Typiquement, vous n'auriez jamais SSL sur le port 80 par exemple car cela briserait ces conventions. Par conséquent, si vous souhaitez utiliser votre service NodeJS sur le port 100, vous pouvez indiquer explicitement ce port dans l'URL ainsi que dans le protocole https. LetsEncrypt ne se soucie pas du port que vous utilisez (sauf pour la pièce de vérification où il place un fichier sur un endroit contactable par le monde extérieur pour prouver que vous avez la propriété du domaine et de la clé - est ce que vous parle d'ici?). Vous pouvez donc utiliser le même certificat pour Apache et NodeJs.

Une meilleure solution serait d'utiliser les ports standard et ProxyPass le service de nœud d'Apache (souvent en tant que http simple mais peut également être https si vous voulez): Apache and Node.js on the Same Server. De cette façon, Apache écoute sur le port 80 (redirection vers le port 443) et le port 443 et le service de nœud n'est disponible que via Apache.

+0

Je ne pouvais pas la solution ProxyPass pour travailler. Je travaille sur un panneau de configuration, et j'ai un formulaire qui doit être envoyé à NodeJS pour que quelque chose se passe. Le seul problème est que je ne peux pas obtenir LetsEncrypt pour couvrir les autres ports (qui ne sont pas 80 et 443). Comment forcer LE à mettre SSL sur un certain port? –

+0

Pourquoi ne pouviez-vous pas faire fonctionner ProxyPass? Et que voulez-vous dire par "Comment forcer LE à mettre SSL sur un port"? Un certificat n'a rien à voir avec un port, donc vous ne savez pas pourquoi vous pensez que LE doit faire quelque chose ici - à moins que, comme je le dis, vous parlez de LE pour charger le fichier de défi pour confirmer la propriété. –

0

vous pouvez utiliser SSL sur un port différent assurez-vous de permettre sur votre pare-feu

sudo ufw allow [port number]