HTTPS 协议是一种加密的 HTTP 通信协议,通过使用 SSL/TLS 加密和身份验证保障数据传输的安全性。在现代 Web 应用程序中,为了保护敏感数据和提供更高的安全性,使用 HTTPS 协议已成为标配。在 Express.js 应用程序中启用 HTTPS 协议,本文将为你介绍如何操作。
准备工作
在启用 HTTPS 协议之前,需要先准备相关的证书和密钥。证书用来验证服务器的身份,密钥是加密和解密 HTTPS 通信的关键。如果你已经有证书和密钥,可以跳过这一步。
- 申请证书
可以使用免费证书颁发机构 Let's Encrypt 来申请证书。步骤如下:
- 安装 certbot 工具:
sudo apt-get install certbot
- 通过 certbot 自动申请和安装 SSL 证书:
sudo certbot certonly --webroot -w /var/www/html -d yourdomain.com
其中 /var/www/html
是你站点的网站根目录,yourdomain.com
是你的域名,你需要将其换成你自己的。
- 创建密钥
你也可以使用 openssl 工具创建一个新的密钥。步骤如下:
- 生成私钥:
openssl genrsa -out private.key 2048
- 生成证书签名请求(CSR):
openssl req -new -key private.key -out request.csr
- 根据 CSR 文件向证书颁发机构申请签名证书
- 使用签名证书和私钥文件生成 PEM 证书:
cat signed.crt root_certificate.crt > cert.pem
启用 HTTPS 协议
现在你已经准备好了证书和密钥,可以在 Express.js 中启用 HTTPS 协议了。以下是操作步骤:
-- -------------------- ---- ------- ----- -- - ------------- ----- ----- - ---------------- ----- ------- - ------------------ ----- --- - --------- -- --- -- ----- ------- - - ---- ------------------------------- ----- --------------------------- - -- -- ----- -- --------------------------- ---------------- -- -- - ------------------ ------ ------- -- ---- ----- -- -- -- ---- -- ------------ ----- ---- -- - --------------- -------- --
这里使用了 https.createServer()
方法来创建 HTTPS 服务器。options
对象包含证书和密钥。最后,使用 app.listen()
方法来启动服务器。
重定向 HTTP 请求
启用 HTTPS 协议后,你可能希望将 HTTP 请求重定向到 HTTPS。这可以通过添加一个中间件来实现:
-- -------------------- ---- ------- ----- ---- - --------------- ----- ------- - ------------------ ----- --- - --------- -- ---- ------ ----- ------------- ---- ----- -- - -- ------------- --- ------- - --------------------------------------------------------- - ---- - ------ - -- -- -- ----- -- ----- ------ - ---------------------- ----------------- -- -- - ----------------- ------ ------- -- ---- ---- -- ----- ------- - - -- --- - --------------------------- ---------------- -- -- - ------------------ ------ ------- -- ---- ----- --
如果请求的协议是 HTTP,会通过 res.redirect()
方法将请求重定向到 HTTPS,否则继续处理。
结论
本文介绍了在 Express.js 中启用 HTTPS 协议的方法,包括如何准备证书和密钥,以及如何启用 HTTPS 协议和重定向 HTTP 请求。使用 HTTPS 协议可以提高网站的安全性和信誉度,是现代 Web 开发的标配之一。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66f23218a44b36ee57648c0b