首頁  >  文章  >  web前端  >  Express如何在本地測試HTTPS

Express如何在本地測試HTTPS

php中世界最好的语言
php中世界最好的语言原創
2018-06-07 09:33:311586瀏覽

這次帶給大家Express怎麼在本地測試HTTPS,Express在本地測試HTTPS的注意事項有哪些,下面就是實戰案例,一起來看一下。

我的環境

  1. #亞馬遜(AWS)的一個ubuntu虛擬機器.

  2. node

  3. openssl

#產生憑證

# #輸入以下指令會在你的目前資料夾產生localhost.key和localhost.cert.

openssl genrsa -out localhost.key 2048
openssl req -new -x509 -key localhost.key -out localhost.cert -days 3650 -subj /CN=localhost

其中localhost為網域. 想要換成別的網域就直接把上面的所有localhost替換成你的網域.

以我為例, 我的虛擬機器的網域是xxx.compute.amazonaws.com, 就以這個網域取代上面所有的localhost, 會產生,

ec2-34-220-96-9.us-west-2.compute.amazonaws.com.key

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 365

如果不想用密碼保護私鑰, 加上

-nodes.

加上-subj '/CN=localhost'可以設定certificate的內容. 將其中的

localhost

替換成你的網域.

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

程式碼#想要執行以下程式碼, 需要先安裝套件

npm init
npm i -S https express

建立文件index.js, 內容如下.<pre class="brush:php;toolbar:false">#!/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' ); } );</pre>啟動伺服器<pre class="brush:php;toolbar:false">sudo node index.js</pre>

#訪問瀏覽器中輸入

http ://xxx.compute.amazonaws.com/

就會以80埠存取HTTP伺服器.顯示hi HTTP.

輸入

https://xxx.compute .amazonaws.com/

就會以443埠存取HTTPS伺服器, 顯示

hi HTTPS

.

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

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章! 推薦閱讀:

###JS操作頁面背景變暗################在實戰專案中怎樣使用jquery layur彈出層# ########

以上是Express如何在本地測試HTTPS的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn