1. 程式人生 > >nodejs開發——express配置自簽名https伺服器

nodejs開發——express配置自簽名https伺服器

       在nodejs中使用express來搭建框架可以說是非常的簡單方便,但是一般預設建立的都是http伺服器,也就是隻能通過http協議進行訪問。如今https已經是發展趨勢,我們應該順應時代的潮流。在本篇文章中,我們將會來使用自簽名的方式建立證書,然後使用express框架來搭建https伺服器,最後讓瀏覽器或者客戶端使用https協議進行訪問。

       首先我們要生成證書檔案:

(1)生成私鑰key檔案(下面的pathway表示你要儲存的檔案路徑位置)

openssl genrsa 1024 > /pathway/private.pem

(2)通過上面生成的私鑰檔案生成CSR證書籤名
openssl req -new -key /pathway/private.pem -out csr.pem
(3)通過上述私鑰檔案和CSR證書籤名生成證書檔案
openssl x509 -req -days 365 -in csr.pem -signkey /pathway/private.pem -out /pathway/file.crt

此時生成的三個檔案如下:

      此時把這三個檔案拷貝到你的nodejs專案目錄下,比如我直接在專案根目錄下新建certificate資料夾,然後放入三個檔案:


     完成以上步驟後,修改專案的啟動檔案,我這裡的啟動檔案是app.js,或者有人是server.js,以下程式碼實現都一樣:

var express = require('express'); // 專案服務端使用express框架
var app = express();
var path = require('path');
var fs = require('fs');

//使用nodejs自帶的http、https模組
var http = require('http');
var https = require('https');

//根據專案的路徑匯入生成的證書檔案
var privateKey  = fs.readFileSync(path.join(__dirname, './certificate/private.pem'), 'utf8');
var certificate = fs.readFileSync(path.join(__dirname, './certificate/file.crt'), 'utf8');
var credentials = {key: privateKey, cert: certificate};

var httpServer = http.createServer(app);
var httpsServer = https.createServer(credentials, app);

//可以分別設定http、https的訪問埠號
var PORT = 8000;
var SSLPORT = 8001;

//建立http伺服器
httpServer.listen(PORT, function() {
    console.log('HTTP Server is running on: http://localhost:%s', PORT);
});

//建立https伺服器
httpsServer.listen(SSLPORT, function() {
    console.log('HTTPS Server is running on: https://localhost:%s', SSLPORT);
});

//可以根據請求判斷是http還是https
app.get('/', function (req, res) {
    if(req.protocol === 'https') {
        res.status(200).send('This is https visit!');
    }
    else {
        res.status(200).send('This is http visit!');
    }
});


     程式碼實現完成後,啟動app.js指令碼,可以使用"node app.js"命令來啟動,或者在其他IDE中run, 然後在瀏覽器中訪問(注意express不是系統內建模組,需要通過npm安裝):

http訪問:

相關推薦

nodejs開發——express配置簽名https伺服器

       在nodejs中使用express來搭建框架可以說是非常的簡單方便,但是一般預設建立的都是http伺服器,也就是隻能通過http協議進行訪問。如今https已經是發展趨勢,我們應該順應時代的潮流。在本篇文章中,我們將會來使用自簽名的方式建立證書,然後使用expr

Tomcat配置簽名https

從JDK中找到keytool.exe,隨便複製到一個方便的目錄,在命令列中進入這個目錄。 第一步:為伺服器生成證書 tomcat.keystore,名字就是域名,其他的看著寫。 keytool -genkey -v -alias tomcat -keyalg R

nodejs中微信公眾號開發-介面配置簽名驗證

意外金喜的部落格 : http://blog.csdn.net/zzwwjjdj1 -- 建立專案 nodejs微信開發,本文介紹的是在express中使用 express命令列建立專案 :點選這裡, 建立專案 : weixin_ex

通過Authentication Challenge來信任簽名Https證書

就會 ace 中一 rust 進行 tostring 網絡相關 alt policy 在開發階段我們我們經常使用自簽名的證書來部署我們的後臺rest api。但是在iOS中調用的時候就會因為證書不被信任而調用api不成功。這時候我們就需要通過實現某些網絡回調函數來自定義證書

win7系統下的Nodejs開發環境配置

此處不推薦使用msi安裝包直接安裝nodejs,我們應該知道它裡面做了哪些事情,這樣以後出問題的時候,可以更快速地定位問題點。另一方面,直接安裝的情況,以後更新了版本的話會很麻煩,因為如果我們想體驗新版本,而更新後新版本有問題需要回退舊的版本,到時候就頭痛了。這裡我們推薦NV

nginx 配置簽名的ssl證書

最近要搭一個https的測試環境,使用nginx做反向代理。 網上找過不少資料,但過程不是很完整,吃了不少虧,故把自己的操作過程總結下來。如果你剛好遇到這個問題,希望對你有幫助! ********************************分割線*********

微信小程式開發(6) SSL證書及HTTPS伺服器

1. 域名 在萬網購買,略 2. 雲伺服器 阿里雲購買,略 3. 安裝lnmp 使用lnmp.org程式,略 4. 申請證書 阿里雲-管理控制檯-安全(雲盾)-證書服務-購買證書證書型別: 免費型DV SSL選擇品牌: Symantec 購買成功後,繫結域名,配置DNS解析

HTTPS(一)簽名https

1、準備一個空白的CentOS 檢視系統版本 $ su # cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)  2、安裝RoR環境 參照《CentOS 7 快速安裝RoR環境 》 安裝結果:

配置Apache成為HTTPS伺服器

環境: ubutnu 17.10 apache2 php5.0 使能SSL模組: 命令:a2enmod ssl 新增conf檔 命令:cp /etc/apache2/sites-available/default-ssl.conf /etc/

基於HttpClient 4.3的可訪問簽名HTTPS站點的新版工具類

本文出處:http://blog.csdn.net/chaijunkun/article/details/40145685,轉載請註明。由於本人不定期會整理相關博文,會對相應內容作出完善。因此強烈建議在原始出處檢視此文。HttpClient在當今Java應用中的位置越來越重要

webstorm+nodejs開發環境配置(1)

安裝這裡就不再寫了. 2.檢測node是否已經安裝好 出現node的版本,說明node已經安裝成功 3.下一步,在webstorm中配置node file>setting 在搜尋框中輸入node 配置Node interpreter,找到

Nginx配置簽名ssl

Nginx ("engine x") 是一個高效能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器。 實驗環境:ubuntu14.04(阿里雲伺服器) 首先安裝Nginx:apt-get install nginx-full(如果沒有的話,使用命令

springboot開發配置定義的錯誤介面和錯誤資訊

如何定製錯誤頁面? (1)在有模板引擎的情況下:在templates資料夾下的error/狀態碼;即將錯誤頁面命名為:錯誤狀態碼.html放在templates資料夾裡面的error資料夾下,發生此狀態碼的錯誤會來到對應的頁面。 頁面可以獲得的資訊: timestamp:時間 status:狀態碼 error

Nginx 配置 HTTPS簽名證書

sta num web oca pos sof AI bsp OS 工具:OpenSSL ssl的開源實現,幾乎實現了市面上所有的加密libcrypto: 通用加密庫, 任何軟件要實現加密功能 鏈接調用這個庫libssl: TLS/SSL 加密庫 openssl:

tomcat配置https簽名證書(keytool生成)

pri list tin led str orm unit lock pass tomcat配置https自簽名證書(keytool生成) 生成keystore keytool -genkeypair -alias "server" -keyalg &

Android開發 - Retrofit 2 使用簽名HTTPS證書進行API請求

為了確保資料傳輸的安全,現在越來越多的應用使用Https的方式來進行資料傳輸,使用https有很多有點,比如: HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路協議,要比http協議安全,可防止資料在傳輸過程中不被竊取、改變,確保資料的完整性。 HTTPS是現行架構下最安

Nginx配置https簽名證書

曾經iOS 為安全起見要求所有請求必須https,記錄專案中配置https過程。 # 生成一個RSA金鑰 openssl genrsa -des3 -out xgj.key 1024 # 拷貝一個不需要輸入密碼的金鑰檔案 openssl rsa -in xgj.key -out xg

iOS開發HTTPS實現之信任SSL證書和簽名證書

                                          &nb

nodejs用阿里雲ssl配置Https伺服器

var https = require('https'); var privateKey = fs.readFileSync('./path/to/215083744800064.key', 'u

tomcat配置https簽名證書

一、環境搭建 安裝jdk: 略安裝tomcat : 略配置java環境變數:略執行測試tomcat:略安裝vcredist_x86:這個的東西是安裝openssl的環境,安裝oenssl前需安裝此環境。安裝openssL:a網上搜索Win32OpenSSL-1_0_1g.e