Comment créer des fichiers .pem pour le serveur Web https

J’utilise le framework Express dans Node.js pour créer un serveur Web. Je veux que le transport soit basé sur SSL.

Le code pour créer le serveur Web https est le suivant.

var app = express.createServer({ key: fs.readFileSync('./conf/key.pem'), cert: fs.readFileSync('./conf/cert.pem') }); module.exports = app; 

Question: Comment créer le key.pem et le cert.pem requirejs par express?

Les deux fichiers dont vous avez besoin sont un certificate SSL et une clé privée codés PEM. Les certs et les clés codés PEM sont du texte codé en Base64 avec des délimiteurs de début / fin qui ressemblent à -----BEGIN RSA PRIVATE KEY----- ou à un -----BEGIN RSA PRIVATE KEY----- similaire.

Pour créer un certificate SSL, vous devez d’abord générer une clé privée et une demande de signature de certificate, ou une demande de signature de certificate (qui contient également votre clé publique). Vous pouvez le faire de différentes manières, mais voici comment utiliser OpenSSL.

 openssl req -newkey rsa:2048 -new -nodes -keyout key.pem -out csr.pem 

Cela vous amènera à entrer une invite interactive pour générer une clé privée RSA de 2048 bits et une CSR qui contient toutes les informations que vous choisissez d’entrer aux invites. ( Remarque: Nom commun est l’endroit où vous souhaitez placer le nom de domaine que vous utiliserez pour accéder à votre site. ) Une fois cette opération effectuée, vous devez normalement envoyer cette CSR à une autorité de certificateion approuvée. votre demande, vous recevrez un certificate.

Si vous ne vous souciez pas de la confiance de votre certificate (généralement à des fins de développement), vous pouvez simplement créer un certificate auto-signé. Pour ce faire, nous pouvons utiliser presque la même ligne, mais nous passerons deux parameters supplémentaires.

 openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem 

Cela vous donnera un cert (valable 10 ans) et une paire de clés que vous pouvez utiliser dans l’extrait de code que vous avez publié.

Suivez simplement cette procédure:

  1. Créez le dossier dans lequel vous souhaitez stocker votre clé et votre certificate:

    mkdir conf


  1. allez dans ce répertoire:

    cd conf


  1. récupérer ce fichier ca.cnf à utiliser comme raccourci de configuration:

    wget https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/ca.cnf


  1. créer une nouvelle autorité de certificateion en utilisant cette configuration:

    openssl req -new -x509 -days 9999 -config ca.cnf -keyout ca-key.pem -out ca-cert.pem


  1. Maintenant que nous avons notre autorité de certificateion dans ca-key.pem et ca-cert.pem , générons une clé privée pour le serveur:

    openssl genrsa -out key.pem 4096


  1. récupérer ce fichier server.cnf à utiliser comme raccourci de configuration:

    wget https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/server.cnf


  1. générer la demande de signature de certificate en utilisant cette configuration:

    openssl req -new -config server.cnf -key key.pem -out csr.pem


  1. signer la demande:

    openssl x509 -req -extfile server.cnf -days 999 -passin "pass:password" -in csr.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem

J’ai trouvé cette procédure ici , avec plus d’informations sur l’utilisation de ces certificates.