gpt4 book ai didi

node.js - 使用 Node.js 加密发送的内容

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:20 25 4
gpt4 key购买 nike

我正在尝试在我的 node.js 应用程序上启用 HTTPS。我 made progress on this通过创建 certAccess包含 root 的组和 ec2-user ,然后说 sudo chown ec2-user.certAccess /etc/pki/tls/private/serverKey.key .但是,当我运行这个虚拟代码时:

var fs = require('fs');
var https = require('https');
var app = require('express')();
var options = {
key : fs.readFileSync('/etc/pki/tls/private/serverKey.key').toString(),
cert : fs.readFileSync('/etc/pki/tls/certs/2_mikewarren.me.crt').toString()
};

app.get('/', function (req, res) {
res.send('Hello World!');
});

https.createServer(options, app).listen(8080, function () {
console.log(JSON.stringify(options, null, '\t'));
console.log('Started!');
});

并在我的浏览器中测试它(使用 <yourDomain>:8080 ),我没有收到服务器的响应。

我进去查看我的私钥和证书的权限,看到这个:

Permissions for key,certificate

私钥和证书配置,位于/etc/httpd/conf.d/ssl.conf看起来像:enter image description here

但是,当我在浏览器中进行测试时(甚至在 URL 前键入 https://,我本不应该这样做),我没有收到服务器的响应。

我该怎么办?!?!?

最佳答案

我想出了解决方案。这是我所做的:

我将 ca 成员添加到 options 并指向该链证书,如下所示: ca : fs.readFileSync('/etc/pki/tls/certs/1_root_bundle.crt', 'utf8')。这解决了证书问题。至于下一部分,我只是在 BASH 中写了一行,将 https(端口 443)重定向到我正在使用的端口(出于方便,我将其更改为 8443,因为我已经将 http 重定向到 8080)。

这让它工作了,但它仍然很糟糕,我仍然必须使用 https:// 作为 URL 的前缀。我不应该!我认为解决方案是做我已经做过的事情,但是将 http 重定向到端口 8443,或者将代理端口 8080 重定向到端口 8443。

关于node.js - 使用 Node.js 加密发送的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38794383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com