如何在 Node.js 中生成和使用 SSL 证书

简介: 如何在 Node.js 中生成和使用 SSL 证书

在保护您的 Web 应用程序时,SSL 证书是您需要考虑的最重要因素之一。SSL 证书是浏览器和搜索引擎用来验证网站真实性的数字证书。如果没有 SSL 证书,任何人都可以轻松冒充您的网站并窃取敏感的用户数据。

如果您的应用程序可供网络外部的用户使用,那么您还必须使用 SSL 证书。这样,您就可以相信用户正在连接到您的服务器,而不是可能伪装成它的人。

这篇文章将涵盖所有内容,从如何生成您自己的 SSL 证书,以便您可以使用 SSL 加密来保护您的应用程序和 HTTPS 链接。到最后,您将准确了解如何使用 SSL 加密设置和保护您的 Node.js 应用程序。

什么是 SSL 证书?

SSL 证书代表安全套接字层证书是一种数字证书,可在 Web 浏览器和 Web 服务器之间启用加密通信。数以百万计的在线企业和个人使用它来降低敏感信息(例如,信用卡号、用户名、密码、电子邮件等)被黑客和身份窃贼窃取或篡改的风险。

有两种类型的 SSL 证书:

  • 自签名:由应用程序生成并用于测试环境
  • CA 签名:由 CA(证书颁发机构)生成和签名。它用于生产。

在这篇文章中,我们将重点关注自签名 SSL 证书。

设置 Node.js 开发环境

在生成我们自己的 SSL 证书之前,让我们创建一个简单的 ExpressJs 应用程序。

要创建一个新的 Express 项目,让我们创建一个名为node-ssl -server 的目录,并使用此命令在终端中打开node-ssl-server目录。

cd node-ssl-server
复制代码

然后运行这个命令来初始化一个新的 npm 项目:

npm init --y
复制代码

现在让我们安装依赖项 ie express ,为此运行此命令:

npm install --save express
复制代码

现在让我们在 package.json 中创建一个启动脚本,只需将这一行添加到“script{}”中,如下所示:

"scripts": {
"start":"node index.js"
},
复制代码

将 index.js 文件添加到我们的应用程序并在其中添加几行,如下所示:

const express= require('express')
const https=require('https')
const fs=require('fs')
const path=require('path')
const app=express();
app.use('/',(req,res,next)=>{
res.send('hello I am SSL Server !')
})
const options={
key: '',
cert: ''
}
const sslServer=https.createServer(options,app);
sslServer.listen(1337,()=>{
console.log('Secure server is listening on port 1337')
})
复制代码

让我们生成 SSL 证书

在我们继续之前,让我们创建一个目录来将证书存储在我们的应用程序文件夹中。

mkdir cert
复制代码

现在使用 cd 命令移动到 cert 目录:

cd cert
复制代码

要生成 SSL 证书,我们需要按照以下步骤操作:

  • 生成私钥
  • 使用私钥创建 CSR(证书签名请求)。
  • 从 CSR 生成 SSL 证书

生成私钥

要生成私钥,我们需要在本地计算机上安装OpenSSL,这是一个用于传输层安全性 (TLS) 和安全套接字层 (SSL) 协议的全功能工具包。这些文章可以帮助您安装它。Windows - Ubuntu

安装完成后,我们需要运行如下所示的命令来生成私钥:

openssl genrsa -out key.pem
复制代码

运行上述命令后,它将生成私钥并将其保存在 cert 目录内的key.pem文件中,并在终端中提供此类消息。

Generating RSA private key, 2048 bit long modulus
...+++
.................+++
e is 65537 (0x10001)
复制代码

创建 CSR(证书签名请求)

由于我们是自己的证书颁发机构,因此我们需要使用 CSR 来生成我们的证书。为此,我们需要运行以下命令。

openssl req -new -key key.pem -out csr.pem
复制代码

运行此命令后,它会询问几个问题,如下所示:

网络异常,图片无法展示
|

如果您想提供可以提供的详细信息,您可以通过简单地按 enter else 来跳过任何问题,这完全取决于您。

完成这些问题后,它将在cert文件夹内的csr.pem文件中生成 CSR 。**

生成 SSL 证书

现在进行最后的步骤,我们需要使用key.pemcsr.pem文件来生成我们的 SSL 证书。

让我们运行下面的命令来生成它。

openssl x509 -req -days 365 -in csr.pem -signkey key.pem -out cert.pem
复制代码

注意:我们使用 x509,因为它是定义公钥证书格式的标准。我们将证书的有效期设置为 365 天。

运行上述命令后,它将证书保存在 cert 文件夹内的cert.pem文件中。 现在您可以删除csr.pem文件,也可以保留它。

在 Express 中集成 SSL 证书

现在让我们使用文件系统 (fs) 和路径模块在我们的应用程序中使用这些证书。为此,我们需要在我们的应用程序中编辑几行,如下所述。

早些时候我们创建了一个常量变量选项。现在我们将通过在其中添加生成的证书的路径来更新该部分代码,如下所示。

前:

const options = {
key:'',
cert:''
}
复制代码

后:

const options = {
key:fs.readFileSync(path.join(__dirname,'./cert/key.pem')),
cert:fs.readFileSync(path.join(__dirname,'./cert/cert.pem'))
}
复制代码

完成后保存并运行服务器:

npm start
复制代码

您可以通过从这个 URL 访问它来检查 HTTPS 是否正常工作:

https://localhost:1337

网络异常,图片无法展示
|

结论

尽管我们有一个有效的证书,但您可能会在浏览器中看到“不安全”,这只是因为我们已经生成了证书,而它不是由某些已知的证书颁发机构生成的,因此,您的浏览器不信任您作为有效证书权威。

但是我们通常应该将此过程用于开发目的,而对于生产,我们应该使用由证书颁发机构生成的证书。


相关文章
|
15天前
|
算法 安全 网络安全
阿里云SSL证书双11精选,WoSign SSL国产证书优惠
2024阿里云11.11金秋云创季活动火热进行中,活动月期间(2024年11月01日至11月30日)通过折扣、叠加优惠券等多种方式,阿里云WoSign SSL证书实现优惠价格新低,DV SSL证书220元/年起,助力中小企业轻松实现HTTPS加密,保障数据传输安全。
546 3
阿里云SSL证书双11精选,WoSign SSL国产证书优惠
|
21天前
|
算法 安全 数据建模
阿里云SSL证书限时优惠,WoSign DV证书220元/年起
2024年11月01日至11月30日,阿里云SSL证书限时优惠,部分证书产品新老同享75折起;阿里云用户通过完成个人或企业实名认证,还可领取不同额度的满减优惠券!通过优惠折扣、叠加满减优惠券等多种方式,阿里云WoSign SSL证书将实现优惠价格新低,DV SSL证书220元/年起!
597 5
阿里云SSL证书限时优惠,WoSign DV证书220元/年起
|
29天前
|
负载均衡 算法 网络安全
阿里云WoSign SSL证书申请指南_沃通SSL技术文档
阿里云平台WoSign品牌SSL证书是由阿里云合作伙伴沃通CA提供,上线阿里云平台以来,成为阿里云平台热销的国产品牌证书产品,用户在阿里云平台https://www.aliyun.com/product/cas 可直接下单购买WoSign SSL证书,快捷部署到阿里云产品中。
2249 8
阿里云WoSign SSL证书申请指南_沃通SSL技术文档
|
8天前
|
网络安全
给网站免费申请SSL证书
为网站申请免费SSL证书是提升安全性的关键步骤。本文简要介绍如何通过JoySSL申请并部署免费SSL证书,包括选择证书类型、提交申请、验证域名、下载及安装证书等步骤,同时提醒注意备份证书、定期检查状态和更新服务器配置。
|
12天前
|
存储 安全 网络安全
SSL网络安全证书,守护您的数字世界
SSL证书的应用场景广泛,它是保护网络通信安全的重要手段。无论是个人用户还是企业组织,都应该认识到SSL证书的重要性,并采取适当的措施来部署和使用SSL证书,以保护自己的数据和隐私不受侵害。
|
19天前
|
算法 数据建模 网络安全
阿里云SSL证书2024双11优惠,WoSign DV证书220元/年起
2024阿里云11.11金秋云创季火热进行中,活动月期间(2024年11月01日至11月30日),阿里云SSL证书限时优惠,部分证书产品新老同享75折起;通过优惠折扣、叠加满减优惠券等多种方式,阿里云WoSign SSL证书将实现优惠价格新低,DV SSL证书220元/年起。
578 5
|
18天前
|
网络协议 应用服务中间件 网络安全
2024阿里云免费版SSL证书申请流程,跟着教程一步步,非常简单!
2024年最新阿里云免费SSL证书申请流程,品牌为Digicert,每个阿里云账号可免费申请20张单域名证书,免费时长为3个月。申请流程包括登录数字证书管理服务控制台、创建证书、域名验证和下载证书。详情请参考阿里云官方页面。
209 2
|
26天前
|
数据建模 网络安全
阿里云申请SSL证书价格多少钱一年?免费版和付费版价格手动整理
阿里云SSL证书提供多种类型和品牌的证书选择,包括免费和付费选项。付费证书如WoSign单域名SSL证书238元/年,DigiCert通配符DV证书1500元/年,GlobalSign企业型1864元/年。免费证书由Digicert提供,有效期3个月,适用于单域名。更多详情见阿里云官网。
409 1
|
1月前
|
算法 小程序 网络安全
阿里云WoSign SSL证书,RSA和国密有什么区别?_沃通SSL技术文档
阿里云WoSign品牌SSL证书为用户提供国密合规SM2算法SSL证书、全球信任RSA算法SSL证书,全球信任、国密合规,能够满足阿里云平台用户不同的SSL证书应用需求。那么阿里云WoSign SSL证书分别提供的RSA算法和国密算法,有什么区别呢?
601 6
|
1月前
|
Web App开发 算法 安全
什么是阿里云WoSign SSL证书?_沃通SSL技术文档
WoSign品牌SSL证书由阿里云平台SSL证书合作伙伴沃通CA提供,上线阿里云平台以来,成为阿里云平台热销的国产品牌证书产品。
1833 2