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

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

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

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

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

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

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

openssl genrsa -out privatekey.pem 1024

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

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

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

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

什么是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构造一个支持https的nodejs服务器

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

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

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

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

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

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

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

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

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

下面是我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服务器

原创文章,作者:WXTGK,如若转载,请注明出处:http://www.wangzhanshi.com/n/16295.html

(0)
WXTGK的头像WXTGK
上一篇 2025年1月2日 12:39:06
下一篇 2025年1月2日 12:39:08

相关推荐

  • OpenSSL生成自签名证书的方法有哪些

    OpenSSL的命令行数量很庞大,很吓唬人。 这是因为OpenSSL所涉及到的领域的确很多,比如各种对称/非对称算法,随机数,签名,加密,证书,结构分析,PKI体系的构建等,这些领…

    ssl证书 2025年1月2日
  • 哪些因素会直接影响https证书价格呢?

    其实https证书就是SSL证书,这种证书可以让网站的http变成https,是一种加密的操作。当网站配置了https证书之后,网站的安全性就会大大的提高,因此如今很多企业都会给自…

    2025年1月2日
  • openssl如何创建或修改账户权限

    创建或修改账户权限 命令格式:$ cleos set account permission ${permission} ${account} ${permission_json} …

    ssl证书 2025年1月2日
  • Tomcat配置ssl证书中常出现的问题有哪些

    Tomcat配置ssl证书中常出现的问题有哪些?多人都不太了解,今天小编为了让大家更加了解Tomcat配置ssl证书中常出现的问题,所以给大家总结了以下内容,一起往下看吧。 由于许…

    2025年1月2日
  • SSL证书是什么?SSL证书怎么申请?

      一、SSL证书是什么     SSL证书是数字证书的一种,由权威数字证书机构(CA)验证网站身份后颁发,可实现浏览器和网站服务器数据传输加密。网站安装SSL证书后会在浏览器显示…

    2025年1月2日
  • Godaddy ssl证书有哪些特点

    现在几乎是所有的网站都会配有ssl证书,而现在市面上也有很多ssl证书的供应商,包括startssl,godaddy,以及国内的阿里云和腾讯云等等,这些都是比较知名的数字证书颁发机…

    2025年1月2日
  • 内网SSL证书的相关介绍

    内网SSL证书的必要性 根据“网络安全等级保护技术2.0”(《信息安全技术网络安全等级保护基本要求》),简称“等保2.0”中明确提出通信传输过程中要求使用密码技术,保障通信数据的完…

    2025年1月2日
  • EMC高端存储和NETAPP的ONTAP集群的示例分析

    传统的高端存储,一般采用PCIe或者RapidIO高速网络,把多个节点互联成一个整体,构成一个多控的系统。而很多的中端存储厂商,通过10GE网络,把多个中端存储采用集群的方式互联起…

    ssl证书 2025年1月2日
  • 服务器证书无效或异常的处理方法介绍

    伴随社会经济发展的发展趋势,手机和电脑仿佛变为大家生活起居不可或缺的一部分大家每时每刻沒有运用本身的手机,除了玩游戏联系他人之外还作为支付或者是购物,但是很多人到顾虑手机网银服务器…

    2025年1月2日
  • Linux安装OpenSSL具体步骤

    OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。 1、下载OpenSS…

    2025年1月2日

发表回复

登录后才能评论