在现代网络应用程序中,HTTPS 已经成为了标配,并且成为了安全通信的标准。为了保护来自攻击者的敏感信息,在开发 Web 应用程序时,我们应该将其配置为使用 HTTPS 安全套接字层协议。
本文将介绍如何在 Express.js 中配置 HTTPS 服务的方法,详细讲解 HTTPS 的概念、如何生成 SSL 证书、如何配置 Express.js 以支持 HTTPS。
HTTPS 概述
HTTPS 全称为「Hyper Text Transfer Protocol Secure」,使用加密机制保护网络通信过程中的机密性和完整性。相比于 HTTP,HTTPS 使用在传输中加密和解密信息的 SSL/TLS 协议,为通信双方提供更高的安全保障。
SSL 证书概述
SSL 证书,全称为「Secure Socket Layer Certificate」,是一种用于数据加密的数字证书,它通常可以在浏览器的地址栏中看到「HTTPS」标识。SSL 证书的目的是用公钥加密机制来保护数据的传输过程,以及证实传输双方的身份真实性。
SSL 证书一般由第三方机构颁发,需要向证书颁发机构(CA)购买付费证书。此外,也可以生成一份自签名的 SSL 证书,用于本地或测试环境。
生成 SSL 证书
本文将介绍如何生成一份自签名的 SSL 证书。
在操作系统的终端中,使用以下指令:
openssl genrsa -out key.pem 2048 openssl req -new -key key.pem -out csr.pem openssl x509 -req -days 365 -in csr.pem -signkey key.pem -out crt.pem
这将生成一个 2048 位的 RSA 密钥对和自签名证书:
key.pem – 私钥文件,保留在服务器上(注意权限应该设置为 400 或更高) csr.pem – SSL 证书请求文件,可用于申请 CA 颁发证书 crt.pem – 生成的自签名证书文件,应该放置在服务器上并保护好它的秘密
配置 HTTPS 服务
有了 SSL 证书后,现在需要在 Express.js 中配置 HTTPS 服务。
在使用 Express.js 库时,我们通常会使用 createServer
方法。为了使用 HTTPS,我们可以使用 createServer
的变体方法 createServerOptions
,以指定 SSL 选项,如下所示:
-- -------------------- ---- ------- ----- ------- - ------------------ ----- ----- - ---------------- ----- -- - ------------- ----- --- - --------- ----- ------- - - ---- --------------------------- ----- --------------------------- - --------------------------- ---------------- -------- -- - ------------------------ ---
key
和cert
参数分别读取了 SSL 证书和私钥文件。createServer
希望在函数中返回一个 app 对象,并启动 HTTPS 服务器。- 另外,我们可以通过监听端口来让服务器开始工作,如上例所示,被明示指定为 443 端口。
在浏览器中访问 https://localhost
即可看到一个使用自签名 SSL 证书的 HTTPS 网站
结论
本文介绍了 HTTPS 的概念,SSL 证书的概述,以及如何生成和使用自签名 SSL 证书。希望本文可以让开发者更好地理解在 Express.js 中配置 HTTPS 服务的方法。现在你可以开始保护你的应用程序并提高用户数据安全性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/670b62eed91dce0dc88a03ea