gpt4 book ai didi

node.js - NodeJS,私有(private) ca 与 express.js 的结合使用

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

我正在尝试使用由自定义 CA 签名的服务器证书创建 https/express 服务器。这是我的代码:

var express = require('express');
var https = require('https');
var fs = require('fs');

var app = express();

var config = {
key: fs.readFileSync('cert/server.key'),
cert: fs.readFileSync('cert/server.crt'),
ca: fs.readFileSync('cert/ca.crt')
};

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


https.createServer(config,app).listen(443);

这里是我如何创建我的 CA 和我的服务器证书:

### CA self signed
openssl genrsa -des3 -out ca.key 1024
openssl req -new -key ca.key -out ca.csr
openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt


### server cert signed by CA
openssl genrsa -des3 -out server_pass.key 1024
openssl rsa -in server_pass.key -out server.key
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey ca.key -out server.crt

我不认为我在 openssl 部分做错了,我创建了我的 CA,根据定义自动签名,然后我创建了我的服务器 key 和 csr,然后用我的 CA 证书签名。我已经使用 à 直接自签名证书尝试了相同的 nodeJS 代码,在这种情况下效果很好。

我假设问题是我的服务器证书既不是自动签名的也不是由公共(public) CA 签名的,就好像 express 没有在配置对象中使用我的自定义 CA。

有人可以证实或覆盖我的假设吗?

干杯,保罗

最佳答案

好的,我发现我在签署 key 时使用了错误的参数。

我正在使用:-signkey ca.key

但当签名元素是 CA 文件时,我应该使用:-CA ca.crt -CAkey ca.key -CAcreateserial

现在可以了

关于node.js - NodeJS,私有(private) ca 与 express.js 的结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26911735/

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