在 Express.js 应用程序中启用 HTTPS 协议的方法

阅读时长 4 分钟读完

HTTPS 协议是一种加密的 HTTP 通信协议,通过使用 SSL/TLS 加密和身份验证保障数据传输的安全性。在现代 Web 应用程序中,为了保护敏感数据和提供更高的安全性,使用 HTTPS 协议已成为标配。在 Express.js 应用程序中启用 HTTPS 协议,本文将为你介绍如何操作。

准备工作

在启用 HTTPS 协议之前,需要先准备相关的证书和密钥。证书用来验证服务器的身份,密钥是加密和解密 HTTPS 通信的关键。如果你已经有证书和密钥,可以跳过这一步。

  1. 申请证书

可以使用免费证书颁发机构 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 是你的域名,你需要将其换成你自己的。

  1. 创建密钥

你也可以使用 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

纠错
反馈