Home > Article > Web Front-end > How to test HTTPS locally with Express
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
An ubuntu virtual machine on Amazon (AWS).
node
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=localhostwhere 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.
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365If you don’t want to protect the private key with a password, add
-nodes.
-subj '/CN=localhost'. Replace
localhost with your domain name.
Code
If you want to run the following code, you need to install the package firstnpm init npm i -S https expressCreate 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
Enterhttp in the browser ://xxx.compute.amazonaws.com/ will access the HTTP server at port 80. Display
hi HTTP.
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.jsI 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
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!