Maison  >  Article  >  interface Web  >  Comment tester HTTPS localement avec Express

Comment tester HTTPS localement avec Express

php中世界最好的语言
php中世界最好的语言original
2018-06-07 09:33:311649parcourir

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

  1. Une machine virtuelle Ubuntu d'Amazon (AWS).

  2. noeud

  3. 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

Mise à jour

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
Si vous ne souhaitez pas protéger la clé privée avec un mot de passe, ajoutez

-nodes.

Ajouter

pour définir le contenu du certificat. Modifiez le -subj '/CN=localhost'Remplacer par votre nom de domaine.localhost

Référence : Comment créer un certificat auto-signé avec openssl ?

Code

Pour exécuter le code suivant, vous devez d'abord installer le package

npm init
npm i -S https express
Cré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

Entrez

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.js

Je 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn