怎么使用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,如若转载,请注明出处:https://www.wangzhanshi.com/n/16295.html

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

相关推荐

  • 服务器SSL证书更新的作用是什么

    服务器SSL证书更新的作用是什么?很多人都不太了解,今天小编为了让大家更加了解服务器SSL证书更新的作用,所以给大家总结了以下内容,一起往下看吧。 已经购买并部署了服务器证书的用户…

    2025年1月2日
  • OpenSSL生成自签名证书的方法有哪些

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

    ssl证书 2025年1月2日
  • linux中如何使用OpenSSL来处理SSL证书

    OpenSSL 是一个多功能的命令行工具,可以用于与公钥基础设施(Public Key Infrastructure)(PKI)和 HTTPS(HTTP over TLS)相关的大…

    ssl证书 2025年1月2日
  • SSL证书是怎么保证网站安全的

    浏览器在互联网中充当着十分重要的角色。浏览器是用户访问互联网的重要窗口,当用户访问网站时,都须通过浏览器指向正确的网站地址来完成。如果当遇到不安全的网站,浏览器向用户发出警告时,认…

    2025年1月2日
  • 如何申请ssl证书

    多域名SSL证书可以在网站那些事网站申请,网站那些事SSL证书服务品质卓越,为网站开启加密新时代,安全可靠。申请步骤为: 1.进入网站那些事网站,注册账号登录(已有账号直接登录) …

    ssl证书 2025年1月2日
  • ssl证书有什么好处,申请证书的方法

    今天小编给大家分享的是ssl证书有什么好处,申请证书的方法,很多人都不太了解,今天小编为了让大家更加了解ssl证书,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。 当…

    2025年1月2日
  • 查询ssl证书的方法

    ssl证书在网络的信息保护和网站安全中起着至关重要的作用。随着时代的发展,它也渐渐被人们重视。很多网址都会安装、ssl,不仅仅是大型企业或是政府机构,很多个人和小型企业也会安装ss…

    2025年1月2日
  • 如何进行ubuntu16.04 openssl安装

    信息安全导论课要求安装openssl,自己安装过程中踩了很多坑,特此记录自己成功安装的步骤。 安装步骤 到官网下载openssl-1.1.1.tar.gz,把文件放在/usr/lo…

    ssl证书 2025年1月2日
  • 网站设置ssl证书后如何进行资源设置

    网站ssl证书现在很多网站都流行这个安全加密使用443端口,好处呢很多可以百度下,如何是个人站点,博客大家使用免费证书即可,但是当我们安装好ssl证书以后再谷歌浏览器里面并没有显示…

    ssl证书 2025年1月2日
  • 域名如何证明

    域名证明是“我的”,可以通过下载域名证书来证明。《域名证书》用户证明该域名是由其所有人注册,并已在国际顶级域名数据库中备案。 所有通过注册并交纳相应注册费用的用户,均可通过域名注册…

    ssl证书 2025年1月20日

发表回复

登录后才能评论