Comment configurer mon application nodejs pour répondre uniquement aux connexions SSL?

J’ai une application nodejs / express s’exécutant sur ec2 avec nginx et mongodb. Je suis en cours d’exécution sur une instance ec2 à 8 cœurs, et j’ai 8 instances séparées de mon application nodejs exécutées par nginx. Pour l’instant, je n’ai qu’un serveur.

Nous allons bientôt mettre en ligne notre logiciel et nous voulons nous assurer que notre serveur répond uniquement aux requêtes SSL. Je voudrais savoir comment et où configurer la connexion SSL. Je vais énumérer les questions dans une liste ordonnée et serais très heureux si vous pouvez vous référer au numéro de la question lorsque vous répondez à tout ou partie de la question. Ce sera non seulement facile pour moi, mais aussi pour quiconque lit ce sujet.

Les voici:

  1. Je vais devoir aller dans un CA comme verisign pour obtenir un certificate, n’est-ce pas? Mon domaine est enregistré par Godaddy, puis-je obtenir un certificate SSL de leur part?

  2. Dois-je installer le cert sur l’instance ec2? Si oui, que se passe-t-il si je dois append un autre serveur pour HA et utiliser l’équilibrage de charge élastique? Dans ce cas, dois-je acheter un certificate distinct pour chaque instance ec2? Quelqu’un peut-il me diriger vers un document ou un tutoriel sur la façon de configurer nginx pour ssl?

  3. Une fois ssl activé, comment puis-je m’assurer que toutes les connexions non ssl sont automatiquement redirigées vers les points de terminaison ssl? Puis-je le faire facilement via une entrée de configuration dans nginx?

Toute aide ou pointeur dans la bonne direction est très apprécié.

–su

1. Je vais devoir aller dans un CA comme verisign pour obtenir un certificate, n’est-ce pas? Mon domaine est enregistré par Godaddy, puis-je obtenir un certificate SSL de leur part?

Oui, vous pouvez acheter un certificate SSL directement via GoDaddy .

2. Dois-je installer le cert sur l’instance ec2?

Oui, chaque serveur sur lequel vous souhaitez diffuser du contenu HTTPS nécessite l’installation du certificate. Veillez à acheter un certificate pouvant être installé sur plusieurs serveurs – certains certificates ne peuvent être installés que sur un seul. Il semble que GoDaddy autorise des installations de certificates illimitées, donc ce n’est pas un problème si vous les utilisez, mais si vous y allez avec quelqu’un d’autre, cela peut être le cas.

Une autre considération est que si vous voulez avoir la possibilité d’avoir des sous-domaines SSL (par exemple, https: //*.mydomain.com ne lancera pas d’avertissement de navigateur), vous devrez acheter soit un certificate générique (pour permettre un nombre illimité de sous-domaines) ou un certificate prenant en charge un nombre spécifique de sous-domaines que vous souhaitez utiliser.

Notez également que si vous devez prendre en charge des sessions persistantes derrière un équilibreur de charge sur AWS, vous devez installer le certificate sur Elastic Load Balancer (ELB) ainsi que sur tous vos serveurs.

Mais je ne m’inquiéterais pas de cela tant que tout le rest ne fonctionne pas puisque vous n’avez qu’un seul serveur pour le moment, mais sachez que le certificate doit être X.509 (ce qui semble être le cas de GoDaddy) pour être installé sur votre ELB. Assurez-vous simplement lors de l’achat que ce n’est pas un problème à l’avenir.

Quelqu’un peut-il me diriger vers un document ou un tutoriel sur la façon de configurer nginx pour ssl?

Installation du certificate SSL dans Nginx .

3. Comment puis-je m’assurer que toutes les connexions non ssl sont automatiquement redirigées vers les points de terminaison ssl?

Voir cette réponse ici sur ServerFault, il est assez simple de configurer:

server { listen 80; server_name signup.mysite.com; rewrite ^ https://$server_name$request_uri? permanent; } 

Bonne chance.

Vous pouvez terminer les connexions SSL au niveau de l’ELB, puis simplement renvoyer HTTP vers les serveurs d’applications. Ensuite, configurez les groupes de sécurité sur vos instances pour interdire les connexions directes des clients (les obligeant à passer par l’ELB). Cette approche résout à peu près tous vos problèmes.