本文说明了如何使用Let's Encrypt证书使用https保护您的Express.js服务器,并通过HST和更强大的Diffie-Hellman参数来进一步增强安全性。
在当今的数字景观中,https是不可谈判的。 用户,Google排名因素和浏览器的预期,积极强调缺乏该网站。本教程演示了在您的express.js应用程序中添加让我们加密证书。 但是,客户端的安全至关重要。即使默认情况下未启用,我们也会探索加密的连接到外部服务器。
钥匙要点:
HTTPS HTTPS对于2020年及以后的网站安全至关重要,提供身份验证,隐私,机密性和数据完整性。 这是Google的排名因素和用户期望。
> node.js默认为http,但是https
ssl/tls安全性。
http > ssl/tls
> tcp
> TLS 1.3是最新版本,成功的SSL 3.0(尽管无法互操作)。 它使用三个加密通道:证书链,用于密钥交换的公共密钥加密以及用于数据传输的对称密码学。 建议使用SHA2或更强的哈希算法(SHA1已过时)。 不断增长的数据泄露了用户对增强在线安全性的需求。 EFF的HTTP到处都是浏览器扩展程序在可能的情况下强制加密,包括重写部分HTTPS支持或完全阻止HTTP的站点的请求。
基本通信:
证书验证涉及验证签名,到期日期,可信赖的根链和撤销状态。 受信任的证书机构(CAS)发行证书; CA的妥协撤销了所有证书。 HTTPS握手序列:客户端初始化,证书和密钥交换消息,客户端键交换和密码规范,服务器确认和握手闭合。>
https实现
> node.js使用>模块进行安全通信。 它的用法反映了>模块:
https
>用生成的证书路径替换http
>
const https = require("https"), fs = require("fs"); const options = { key: fs.readFileSync("/srv/www/keys/my-site-key.pem"), cert: fs.readFileSync("/srv/www/keys/chain.pem") }; const app = express(); app.use((req, res) => { res.writeHead(200); res.end("hello world\n"); }); app.listen(8000); https.createServer(options, app).listen(8080);
/srv/www/keys/my-site-key.pem
> certbot证书生成:/srv/www/keys/chain.pem
certbot自动化,让我们加密证书生成和管理。 安装certbot(指令因OS而变化;此示例使用Ubuntu):
sudo apt-get update sudo apt-get install software-properties-common sudo add-apt-repository universe sudo add-apt-repository ppa:certbot/certbot sudo apt-get update
对象中使用这些。certonly --webroot
>
certbot certonly --webroot -w /var/www/example/ -d www.example.com -d example.com
options
> http严格的运输安全性(HSTS):使用头盔中间件:
const helmet = require("helmet"); // ... app.use(helmet());
openssl dhparam -out /var/www/example/sslcert/dh-strong.pem 2048
结论:dhparam
options
https是必不可少的。 Node.js为安全Web应用程序提供了强大的SSL/TLS选项。 让我们加密简化证书管理,而HST和更强大的DH参数进一步增强了安全性。
> FAQS部分已被省略,但提供的信息涵盖了原始文本的核心方面。
以上是如何使用node.js使用SSL/TLS的详细内容。更多信息请关注PHP中文网其他相关文章!