1. 首页 > 快讯

Node.js 搭建 HTTPS 服务器-nodejs搭建服务器

在Node.js 中打开HTTP 服务非常简单。如果要使用Node.js开启HTTPS服务,需要两步:一是生成签名证书,二是需要使用Node.js提供的系统模块HTTPS来完成。

自签名证书企业公共网络常用的证书通常是全球权威CA机构颁发的证书,受到各大浏览器厂商的信任。为了开发和测试时的简单性,我们可以对证书进行自签名,但这在浏览器中打开时会提示安全问题。

[[345557]]

使用 openssl 工具生成自签名证书。简单分为以下几个步骤:1.使用openssl的genrsa命令生成服务器私钥文件

#genrsa生成密钥#-out指定输出文件opensslgenrsa-outserver.key20482。生成证书请求文件

#-new 执行生成新的证书请求#-key 指定输入密钥opensslreq-new-keyserver.key-outserver.csr# 会有如下交互提示。 CommonName可以自定义为域名,只需修改hosts文件的域名映射即可。 CountryName(2字母代码)[]:CNStateorProvinceName(全名)[]:ShangHaiLocalityName(例如,城市)[]:ShangHaiOrganizationName(例如,公司)[]:Node.jsOrganizationalUnitName(例如,部分)[]:CommonName(例如,完全限定主机名)[]:test.https。 com电子邮件地址[]:3。根据步骤2中的证书请求文件和步骤1中的服务器私钥文件生成证书

#x509 根据现有证书请求生成自签名根证书#-days 设置证书有效天数#-in 指定输入证书请求文件opensslx509-req-days365-inserver.csr-signkeyserver.key-成功后会生成outserver.crt 以下3个文件:

key是服务器上的私钥文件。 csr是提交给证书颁发机构CA的证书请求签名文件。 crt是由证书颁发机构CA签署的证书。使用 Node.js 中 HTTPS 模块开启一个服务与传统的HTTP方式相比,多了一个options参数,保证上面生成的自签名证书和下面的文件在同一个目录下。

//app.jsconsthttps=require('https');constfs=require('fs');constPORT=8443;constoptions={key:fs.readFileSync('./server.key'),cert:fs.readFileSync('./server .crt')};https.createServer(options,(req,res)={res.writeHead(200);res.end('HelloWorld!');}).listen(PORT,()=console.log( `Applisteningonport${PORT}!`));经测试,在Chrome版本85.0.4183.121中使用自签名证书是无法访问的。下面是360浏览器中访问的截图。

以下内容是在Safari 中访问的。虽然有提示,但是还是可以访问的。

结合 Express 框架使用经过上面两步的介绍,如果你现在想在Express这样的框架中使用的话,就非常简单了。以Express为例如下:

constexpress=require('express');consthttps=require('https');constfs=require('fs');constapp=express();constPORT=8443;constoptions={key:fs.readFileSync('./server.key '),cert:fs.readFileSync('./server.crt')};https.createServer(options,app).listen(PORT,()=console.log(`Applisteningonport${PORT}!`));app. get('/',(req,res)=res.send('HelloWorld!'));总结搭建一个HTTPS服务并不难。 Node.js 为我们提供了HTTPS 模块来轻松完成此操作。如果我们在本地测试,可以使用openssl工具生成自签名证书。另外,一些像阿里云这样的云服务商也提供了一些免费的证书也可以使用。

好了,文章到此结束,希望可以帮助到大家。

用户评论

她最好i

太棒了,一直想学习如何搭建HTTPS服务器,这篇文章正好解决了我的问题!

    有11位网友表示赞同!

命运不堪浮华

我对 Node.js 还是挺好奇的,这篇博客讲解得很清晰,让我对 HTTPS 服务器有了更深入的理解。

    有17位网友表示赞同!

还未走i

原来搭建HTTPS服务器这么方便啊,之前我还以为很复杂呢。

    有20位网友表示赞同!

陌上花

分享一下我的经验:在设置证书的时候要注意安全性问题。

    有6位网友表示赞同!

折木

这个博客链接太棒了!推荐给想要学习 Node.js 的小伙伴们。

    有20位网友表示赞同!

我绝版了i

Node.js 最适合开发一些需要高并发处理的应用吗?

    有13位网友表示赞同!

将妓就计

看了博主分享的代码,感觉搭建 HTTPS 服务器真简单啊!

    有12位网友表示赞同!

发型不乱一切好办

我以前用 Python 搭建过 HTTP 服务器,现在想尝试一下 Node.js 的方式。

    有5位网友表示赞同!

熟悉看不清

学习新的技术永远是一件很有成就感的事,感谢作者分享这个宝贵的文章。

    有18位网友表示赞同!

凝残月

我现在正在学习前端开发,以后说不定会用到 HTTPS 服务器呢!

    有7位网友表示赞同!

初阳

博主写的代码示例非常清晰易懂,很容易跟着理解。

    有9位网友表示赞同!

拥抱

感觉 Node.js 在 web 开发领域越来越受欢迎了。

    有15位网友表示赞同!

命硬

我还在研究 Node.js 中其他方面的功能,比如异步编程等。

    有19位网友表示赞同!

丢了爱情i

对于新手来说,这篇博客讲解非常详细,能够很好的入门。

    有8位网友表示赞同!

汐颜兮梦ヘ

希望以后作者能分享更多关于 Node.js 的精彩内容!

    有10位网友表示赞同!

凝残月

使用 HTTPS 服务器可以提高网站的安全性和用户信任度吧?

    有16位网友表示赞同!

肆忌

这个博客让我对证书的申请流程有了更清晰的认识。

    有15位网友表示赞同!

我没有爱人i

搭建HTTPS服务器确实非常必要,可以保护网站和用户的隐私安全。

    有19位网友表示赞同!

玩味

Node.js 的性能确实很强,在高并发环境下表现出色。

    有11位网友表示赞同!

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/7177.html

联系我们

在线咨询:点击这里给我发消息

微信号:666666