Comment créer un serveur Websocket Sécurisé(TLS/SSL)

j'utilise WS websocket bibliothèque de nœud.js. Actuellement, j'exécute le serveur ws. Maintenant, je veux sécuriser cette connexion en utilisant secure connections I. e en mettant en œuvre le protocole wss et en prenant également en charge la bibliothèque TLS connection. J'ai cherché un peu et trouvé ce plaine de manière à garantir: wss et wss avec un certificat auto-signé .

les Deux ne sont pas très détaillés et l'article sur le deuxième lien décrit wss avec certificat auto-signé. Ce que je veux savoir, c'est s'il suffit de créer le certificat auto-signé et de le déployer dans mon environnement de production ou si je dois acheter un certificat comme nous devons le faire lors de la création de serveurs HTTPS?

27
demandé sur cernunnos 2015-07-10 13:50:09

1 réponses

votre question #1

comment créer un serveur Websocket Sécurisé(TLS/SSL)?

j'ai trouvé votre question en cherchant en ligne un guide sur la façon de faire fonctionner les websockets sur une connexion sécurisée. Puisque cela est venu dans les résultats de recherche, Il ya une chance que je ne suis pas le seul qui a fini sur cette page. Pour sauver tout le monde (y compris le futur moi) un certain temps, voici.

Le Problème

j'avais un nœud simple.js websocket serveur, propulsé par einaros / ws, écoute sur le port 80 pour une connexion non sécurisée. J'ai dû l'échanger pour sécuriser la connexion.

La Solution

en gros, le deuxième lien que vous avez fourni couvre à peu près tout ce que j'avais besoin de savoir. Voici quelques choses qui m'ont pris un certain temps à comprendre cependant:

  • j'ai besoin de l' .pem des fichiers pour ça, mais tout ce que j'ai eu du fournisseur de cert c'est un simple .crt/.cert fichier, et I aussi avait un privé .key je l'ai eu après la génération de la première .csr demande. Donc voici comment convertir (crédit slf):

    openssl rsa -in server.key -text > private.pem
    openssl x509 -inform PEM -in server.crt > public.pem
    
  • Il était clair pour moi comment faire ws utiliser la connexion sécurisée. Comme J'essayais d'ajouter SSL à une application existante, je voulais éviter d'avoir à refaire les choses. S'avère, tout ce que j'avais à faire était de remplacer le {port:80} paramètre avec une référence au https exemple (voir les liens pour plus d'informations sur la façon de réagir).

    var ws = require('ws').Server;
    var wss = new ws({
        server: httpsServer
    });
    

Références

votre question #2

Ce que je veux savoir c'est si il est suffisant de simplement créer le auto-signé certificat et de la déployer sur mon production l'environnement, ou dois-je acheter un certificat comme nous devons le faire lors de la création de serveurs HTTPS?

c'est moi qui souligne. Oui, je vous conseille d'acheter un certificat auprès d'une autorité de confiance. Cela garantira que vos utilisateurs ne recevront aucun avertissement de sécurité du navigateur, ou tout simplement partir sans même savoir ce qui a mal tourné.

42
répondu aexl 2017-05-23 10:31:19