最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node搭建https服務(wù)器實例詳解

 更新時間:2023年04月28日 09:13:23   作者:祥哥的說  
這篇文章主要介紹了Node搭建https服務(wù)器的方法,結(jié)合實例形式詳細分析了創(chuàng)建ssl證書以及node.js調(diào)用https模塊搭建https服務(wù)器的相關(guān)操作技巧,需要的朋友可以參考下

 本文旨在分享搭建https服務(wù)器的過程,具體知識點以及相關(guān)概念請自行查詢。

第一步:創(chuàng)建文件目錄如下,在index中引用外部的script.js文件,server.js是服務(wù)器文件。

 第二步:創(chuàng)建自己的CA機構(gòu).

在根文件夾下打開命令行工具,直接依次使用下面的命令。

//為CA生成私鑰
 openssl genrsa -out ca-key.pem -des 1024
//通過CA私鑰生成CSR
 openssl req -new -key ca-key.pem -out ca-csr.pem
//通過CSR文件和私鑰生成CA證書
 openssl x509 -req -in ca-csr.pem -signkey ca-key.pem -out ca-cert.pem

 注意下面的運行結(jié)果:enter pass phrase for ca-key.pem:設(shè)置自己的密碼,要記住,接下來的操作中要多次驗證??蛻舳撕头?wù)端的代碼中要用,這里我設(shè)置的是sun13083691283.

 需要設(shè)置項均可以直接enter鍵默認跳過。

 

第三步:創(chuàng)建服務(wù)器端證書 

//(1)為服務(wù)器生成私鑰
 openssl genrsa -out server-key.pem 1024
//(2)利用服務(wù)器私鑰文件服務(wù)器生成CSR
 openssl req -new -key server-key.pem -config openssl.cnf -out server-csr.pem

這一步可能會報錯,Unable to load config info from /user/local/ssl/openssl.cnf,或者有關(guān)openssl.cnf的錯誤,在根目錄下創(chuàng)建一

個openssl.cnf的文件,將下面的代碼拷貝進去。

[req]  
    distinguished_name = req_distinguished_name  
    req_extensions = v3_req  
    [req_distinguished_name]  
    countryName = Country Name (2 letter code)  
    countryName_default = CN  
    stateOrProvinceName = State or Province Name (full name)  
    stateOrProvinceName_default = BeiJing  
    localityName = Locality Name (eg, city)  
    localityName_default = YaYunCun  
    organizationalUnitName  = Organizational Unit Name (eg, section)  
    organizationalUnitName_default  = Domain Control Validated  
    commonName = Internet Widgits Ltd  
    commonName_max  = 64  
    [ v3_req ]  
    # Extensions to add to a certificate request  
    basicConstraints = CA:FALSE  
    keyUsage = nonRepudiation, digitalSignature, keyEncipherment  
    subjectAltName = @alt_names  
    [alt_names]  
	#注意這個IP.1的設(shè)置,IP地址需要和你的服務(wù)器的監(jiān)聽地址一樣
    IP.1 = 127.0.0.1
//(3)通過服務(wù)器私鑰文件和CSR文件生成服務(wù)器證書
 openssl x509 -req -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -in server-csr.pem -out server-cert.pem -extensions v3_req -extfile openssl.cnf

 第四步:創(chuàng)建客戶端證書

//(1)生成客戶端私鑰
 openssl genrsa -out client-key.pem
//(2)利用私鑰生成CSR
 openssl req -new -key client-key.pem -out client-csr.pem
//(3)生成客戶端證書
 openssl x509 -req -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -in client-csr.pem -out client-cert.pem

第五步:將證書打包

//(1)打包服務(wù)器端證書
 openssl pkcs12 -export -in server-cert.pem -inkey server-key.pem -certfile ca-cert.pem -out server.pfx
//(2)打包客戶端證書
 openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem -certfile ca-cert.pem -out client.pfx

打包結(jié)束后在文件夾下會看到如下文件,將其放到keys文件中。 

第六步:編寫服務(wù)端代碼

注意:代碼里面的passphrase要填寫之前設(shè)置的密碼,sun13083691283

var https = require('https');
var fs = require('fs');
var options = {
	pfx:fs.readFileSync('./keys/server.pfx','utf-8'),
	passphrase:'your password'
};
https.createServer(options,function(req,res){
	res.writeHead(200);
	res.end('hello world\n');
}).listen(3000,'127.0.0.1');

第七步:編寫客戶端代碼

注意:代碼里面的passphrase要填寫之前設(shè)置的密碼,sun13083691283

var https = require('https');
var fs = require('fs');
var options = {
	hostname:'127.0.0.1',
	port:3000,
	path:'/',
	method:'GET',
	pfx:fs.readFileSync('./keys/server.pfx','utf-8'),
	passphrase:'your password',
	agent:false
};
options.agent = new https.Agent(options);
var req = https.request(options,function(res){
console.log("statusCode: ", res.statusCode);
  console.log("headers: ", res.headers);
	res.setEncoding('utf-8');
	res.on('data',function(d){
		console.log(d);
	})
});
req.end();
req.on('error',function(e){
	console.log(e);
})

第八步:打開瀏覽器驗證 

參考資料:https://cnodejs.org/topic/54745ac22804a0997d38b32d 

PS:這里需要注意一點,筆者在測試的時候,由于node.js相關(guān)模塊的版本問題,調(diào)用 fs.readFileSync 函數(shù)需要指明編碼類型,否則返回Buffer結(jié)果,并在運行時報錯!這種報錯在很多類似的網(wǎng)絡(luò)資料上都會遇到。

相關(guān)文章

  • 深入淺出了解Node.js Streams

    深入淺出了解Node.js Streams

    這篇文章講了了解流的用途,為什么它們?nèi)绱酥匾?,以及如何使用它們。下面我們來一起學習吧
    2019-05-05
  • 詳解nodejs http請求相關(guān)總結(jié)

    詳解nodejs http請求相關(guān)總結(jié)

    這篇文章主要介紹了nodejs http請求相關(guān)總結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • Node.JS使用Sequelize操作MySQL的示例代碼

    Node.JS使用Sequelize操作MySQL的示例代碼

    Node.JS提供了操作數(shù)據(jù)庫的基礎(chǔ)接口,本篇文章主要介紹了Node.JS使用Sequelize操作MySQL的示例代碼,具有一定的參考價值,有興趣的可以了解一下
    2017-10-10
  • node.js中的fs.write方法使用說明

    node.js中的fs.write方法使用說明

    這篇文章主要介紹了node.js中的fs.write方法使用說明,本文介紹了fs.write的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • node+experss實現(xiàn)爬取電影天堂爬蟲

    node+experss實現(xiàn)爬取電影天堂爬蟲

    本文給大家分享的是node+experss制作爬蟲的第二篇,我們來爬取電影天堂最新更新的電影迅雷下載鏈接,有需要的小伙伴可以參考下
    2016-11-11
  • nvm管理node無法正常切換node版本問題的解決方法

    nvm管理node無法正常切換node版本問題的解決方法

    相信一定會有存在一些小伙伴 明明都已經(jīng)按著操作卸載node 和安裝nvm 了但是 依舊無法正常通過nvm管理node,本文將給大家介紹nvm管理node無法正常切換node版本問題的解決方法,需要的朋友可以參考下
    2024-01-01
  • node.js使用yargs處理命令行參數(shù)操作示例

    node.js使用yargs處理命令行參數(shù)操作示例

    這篇文章主要介紹了node.js使用yargs處理命令行參數(shù)操作,結(jié)合實例形式分析了yargs庫的安裝及node.js使用yargs處理命令行參數(shù)具體實現(xiàn)技巧,需要的朋友可以參考下
    2020-02-02
  • node.js制作一個簡單的登錄攔截器

    node.js制作一個簡單的登錄攔截器

    本文給大家分享的是使用node.js制作一個簡單的登錄攔截的思路及代碼,有需要的小伙伴可以參考下
    2020-02-02
  • npm install常見錯誤類型及對應(yīng)的解決方案

    npm install常見錯誤類型及對應(yīng)的解決方案

    在前端開發(fā)中,npm是最常用的包管理工具,通過 npm install 命令,開發(fā)者可以輕松地安裝項目所需的依賴包,然而,在實際使用過程中,npm install 可能會因為各種原因而報錯,本文將詳細介紹一些常見的 npm install 錯誤類型、發(fā)生原因及其對應(yīng)的解決方案,需要的朋友可以參考下
    2025-03-03
  • nodejs下打包模塊archiver詳解

    nodejs下打包模塊archiver詳解

    這篇文章主要介紹了nodejs下打包模塊archiver的使用方法,非常簡單實用,這里推薦給有需要的小伙伴。
    2014-12-12

最新評論

达拉特旗| 麦盖提县| 谷城县| 天门市| 区。| 丘北县| 滕州市| 昭苏县| 宕昌县| 凌云县| 通榆县| 西吉县| 罗山县| 五台县| 婺源县| 贵阳市| 太仓市| 丹凤县| 岱山县| 沈丘县| 慈利县| 柳州市| 巴南区| 贡嘎县| 苏尼特右旗| 正宁县| 淮北市| 泉州市| 龙海市| 牙克石市| 邛崃市| 怀集县| 翁源县| 孝昌县| 伊宁市| 松桃| 满洲里市| 陵川县| 黎平县| 桂林市| 杭州市|