怎么用Node.js创建HTTPS服务器?
HTTPS已经无所不在,作为开发者,我们经常需要访问或者使用HTTPS服务器。本文重要介绍了如何用 Node.js 在本地创建一个HTTPS开发服务器。
要创建一个HTTPS服务器,你需要两样东西:SSL证书和Node.js内置的https模块。
我们先从SSL证书开始。一般来说,有两种证书:由“证书颁发机构”签署的证书,简称CA证书,以及“自签名证书”。证书颁发机构是SSL证书的可信来源,使用来自CA的证书可以让你的用户信任你网站的身份。在大多数情况下,你会在生产环境中使用CA签名的证书,但是出于开发和测试目的,自签名证书也可以。
要生成自签名证书,请在终端运行以下命令:
它会给你生成两个文件,cert.pem(证书)和key.pem(私钥)。将这些文件放在与Node.js服务器文件相同的目录中。如下是一个hello world示例(https和http模块之间最大的区别是options参数):
要启动https服务器,请在终端上运行 node app.js(这里,app.js是文件的名称)。
现在你的服务器已经设置并启动,在浏览器中可以访问 https://localhost:8000/
如果你在使用Express框架,可以在入口文件中添加如下代码:
假设上述代码保存在 index.js 文件里,你可以在终端中运行 nodeindex.js ,然后你可以访问 https://localhost:3000 访问这个页面了。
提示:由于我们使用了自签名的证书,访问页面时可能会看到浏览器的证书警告,可能需要手动点击信任当前证书,或者手动点击链接确认访问该页面。
例如Chrome 81提醒“您的连接不是私密连接”,并禁止你访问。你可以直接在当前页面输入 thisisunsafe,不是在地址栏输入,而是直接敲击键盘输入,页面会自动刷新进入网页。更多HTTPS服务器搭建可以关注赵一八笔记。