Home  >  Article  >  Web Front-end  >  How to test HTTPS locally with Express

How to test HTTPS locally with Express

php中世界最好的语言
php中世界最好的语言Original
2018-06-07 09:33:311640browse

This time I will show you how Express tests HTTPS locally, and what are the precautions for Express to test HTTPS locally. The following is a practical case, let's take a look.

My environment

  1. An ubuntu virtual machine on Amazon (AWS).

  2. node

  3. openssl

##Generate certificate

Enter the following command to generate localhost.key and localhost.cert in your current folder.

openssl genrsa -out localhost.key 2048
openssl req -new -x509 -key localhost.key -out localhost.cert -days 3650 -subj /CN=localhost
where localhost is the domain name. If you want to change it to another domain name, just replace all localhost above with yours Domain name.

Take me as an example. The domain name of my virtual machine is

xxx.compute.amazonaws.com. Just replace all the localhosts above with this domain name and it will generate, ec2-34-220-96-9.us-west-2.compute.amazonaws.com.key and ec2-34-220-96-9.us-west-2.compute.amazonaws. com.certTwo files.

Update

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
If you don’t want to protect the private key with a password, add

-nodes.

Add You can set the certificate content on

-subj '/CN=localhost'. Replace localhost with your domain name.

Reference: How to create a self -signed certificate with openssl?

Code

If you want to run the following code, you need to install the package first

npm init
npm i -S https express
Create the file index.js, the content is as follows.

#!/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' );
} );
Start the server

sudo node index.js

Access

Enter

http in the browser ://xxx.compute.amazonaws.com/ will access the HTTP server at port 80. Display hi HTTP.

Enter

https://xxx.compute .amazonaws.com/ will access the HTTPS server on port 443, displaying hi HTTPS.

Reference

Self-Signed, Trusted Certificates for Node.js & Express.js

I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!

Recommended reading:

JS operation page background darkening

##How to use jquery layur pop-up layer in actual projects

The above is the detailed content of How to test HTTPS locally with Express. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn