Maison > Article > interface Web > Comment tester HTTPS localement avec Express
Cette fois, je vais vous montrer comment Express teste HTTPS localement, et quelles sont les précautions à prendre pour Express pour tester HTTPS localement. Voici un cas pratique, jetons un oeil.
Mon environnement
Une machine virtuelle Ubuntu d'Amazon (AWS).
noeud
openssl
générer un certificat
Entrez la commande suivante pour générer localhost.key et localhost.cert dans votre dossier actuel
openssl genrsa -out localhost.key 2048 openssl req -new -x509 -key localhost.key -out localhost.cert -days 3650 -subj /CN=localhost
où localhost est le nom de domaine Si vous souhaitez le remplacer par un autre nom de domaine, remplacez simplement tous les localhost ci-dessus. avec votre nom de domaine.
En me prenant comme exemple, le nom de domaine de ma machine virtuelle est xxx.compute.amazonaws.com
Remplacez simplement tous les hôtes locaux ci-dessus par ce nom de domaine, et deux fichiers, ec2-34-220-96-9.us-west-2.compute.amazonaws.com.key
et , sera généré ec2-34-220-96-9.us-west-2.compute.amazonaws.com.cert
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365Si vous ne souhaitez pas protéger la clé privée avec un mot de passe, ajoutez
-nodes.
pour définir le contenu du certificat. Modifiez le -subj '/CN=localhost'
Remplacer par votre nom de domaine.localhost
Code
Pour exécuter le code suivant, vous devez d'abord installer le packagenpm init npm i -S https expressCréez le fichier index.js avec le contenu suivant.
#!/usr/bin/env node var https = require('https'); var fs = require('fs'); var express = require('express'); var host = 'xxx.compute.amazonaws.com'; // Input you domain name here. var options = { key: fs.readFileSync( './' + host + '.key' ), cert: fs.readFileSync( './' + host + '.cert' ), requestCert: false, rejectUnauthorized: false }; var httpApp = express(); var app = express(); app.get('/', function (req, res) { res.send('hi HTTPS'); }); httpApp.get('/', function (req, res) { res.send('hi HTTP'); }); httpApp.listen(80, function () { console.log('http on 80'); }); var server = https.createServer( options, app ); server.listen( 443, function () { console.log( 'https on 443' ); } );Démarrez le serveur
sudo node index.js
Visitez
et saisissez dans le navigateur pour accéder au serveur HTTP sur le port 80. Affichez http://xxx.compute.amazonaws.com/
.hi HTTP
Il accédera au serveur HTTPS avec le port 443, en affichant https://xxx.compute.amazonaws.com/
.hi HTTPS
Référence
Certificats auto-signés et fiables pour Node.js et Express.jsJe pense que vous maîtrisez la méthode après avoir lu le cas présenté dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes. sur le site php chinois ! Lecture recommandée :
Assombrissement de l'arrière-plan de la page d'opération JS
Comment utiliser la couche contextuelle jquery layur dans des projets pratiques
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!