千家信息网

怎么使用openSSL构造一个支持https的nodejs服务器

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"怎么使用openSSL构造一个支持https的nodejs服务器",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使用openSSL构造
千家信息网最后更新 2026年11月01日怎么使用openSSL构造一个支持https的nodejs服务器

本篇内容主要讲解"怎么使用openSSL构造一个支持https的nodejs服务器",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使用openSSL构造一个支持https的nodejs服务器"吧!

首先通过下面的链接下载openSSL
https://slproweb.com/products/Win32OpenSSL.html

下载完毕后,执行openssl进入交互式界面:

使用命令生成privatekey.pem 1024意思是1024位长度。

openssl genrsa -out privatekey.pem 1024

生成的privatekey.pem,打开看一看长啥样:

什么是pem文件?

.pem - Defined in RFCs 1421 through 1424, this is a container format that may include just the public certificate (such as with Apache installs, and CA certificate files /etc/ssl/certs), or may include an entire certificate chain including public key, private key, and root certificates. Confusingly, it may also encode a CSR (e.g. as used here) as the PKCS10 format can be translated into PEM. The name is from Privacy Enhanced Mail (PEM), a failed method for secure email but the container format it used lives on, and is a base64 translation of the x509 ASN.1 keys.

简单的说,就是一个密钥文件。

第二步,基于第一步生成的密钥文件生成一个证书请求:
openssl req -new -key privatekey.pem -out certrequest.csr

如果懒得维护证书明细,直接敲回车,会自动填入默认值:

最后基于第一步生成的密钥和证书请求生成一个数字证书:当然颁发机构就是自己了,仅用于测试目的。
openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem

至此我们有了privatekey.pem和Certificate.pem两个证书了。

下面是我https服务器的代码,很简单,只有50几行:

var app = require('express')();var fs    = require('fs');var https = require('https');var httpOptions =  { key: fs.readFileSync("keys/privatekey.pem"), cert: fs.readFileSync("keys/certificate.pem")}var server = https.createServer(httpOptions, app);var io = require('socket.io')(server);console.log("https server listens on port 8080...");server.listen(8080);function print_env(){  console.log(process.env);}app.get('/', function (req, res) {  var response = "Hello World";  res.send(response);});app.get('/env', function (req, res) {  print_env();  // res.sendFile(__dirname + '/index.html');  var response = JSON.stringify(process.env);  res.send(response);});app.get('/redis', function (req, res) {  var redisClient = require("./redisClient");    function callback(response){    // var response = "ok";//JSON.stringify(process.env);    res.send(response);  }  redisClient.test(callback);});io.on('connection', function (socket) {  console.log("connect comming from client: " + socket.id);  socket.emit('messages_jerry', { hello: 'world greeting from Server!' });  socket.on('messages', function (data) {    console.log("data received from Client:" + JSON.stringify(data,2,2));  });});

从代码里不难理解这两个pem文件是如何用在https服务器里的。
最后在浏览器里测试。因为是自己颁发的证书,没有经过CA验证,所以浏览器会显示一个警告。

到此,相信大家对"怎么使用openSSL构造一个支持https的nodejs服务器"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

证书 生成 服务器 服务 文件 支持 密钥 两个 代码 内容 就是 浏览器 学习 测试 浏览 实用 明细 更深 交互式 兴趣 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司 湖南永感互联网科技有限公司 科技企业和互联网企业 合肥互联网科技公司 九亚互联网科技 深圳齐家互联网科技 苏州互联网科技贷款公司 科技互联网创业计划书 互联网金融和金融科技 深圳前海聚择互联网科技有限公司 辽宁互联网新科技 米聚互联网科技南京有限公司排面 青海科技产业互联网发展 伊宁互联网科技做什么的 互联网金融科技公司的优势 中国新注册互联网科技 银川新华互联网科技学校原画 杭州科技互联网公司有哪些 伍佰万互联网科技是干嘛的 六子台科技互联网展会 互联网科技会 美国互联网科技巨头监管 远拓互联网科技 亿人帮互联网科技 深圳卡尔迅互联网科技有限公司怎么样 互联网和高科技公司 承德科技产业互联网发展 互联网时代科技改变生活 深圳市罗太互联网科技有限公司 世界互联网科技成果奖
0