我已经完成了如何在localhost上使用https/SSL中详述的步骤?但这会为我的机器名设置一个自签名证书,当通过https:// localhost浏览时,我会收到IE警告.
有没有办法为"localhost"创建自签名证书以避免此警告?
尝试遵循有关创建自签名证书以与localhost一起使用的各种说明,大多数说明似乎适用于IIS,但我正在尝试使用Nodejs/Express.它们都没有正常工作,因为在安装证书时,它不受信任.这是我尝试过的失败:
有人可以提供可以做到这一点的工作流程吗? 我可以安装一个证书,但我无法让chrome(v32)或IE(v10)中的证书受到信任.
编辑:在评论中建议问题是没有受信任的cert-root.我通过IE安装了证书,但它仍然不受信任.
我已经开始为API编写一个包装器,它要求所有请求都通过HTTPS.我在开发和测试时不是向实际的API发出请求,而是想在本地运行我自己的服务器来模拟响应.
我很困惑如何生成我需要创建HTTPS服务器并向其发送请求的证书.
我的服务器看起来像这样:
var options = {
key: fs.readFileSync('./key.pem'),
cert: fs.readFileSync('./cert.pem')
};
https.createServer(options, function(req, res) {
res.writeHead(200);
res.end('OK\n');
}).listen(8000);
Run Code Online (Sandbox Code Playgroud)
pem文件生成为:
openssl genrsa 1024 > key.pem
openssl req -x509 -new -key key.pem > cert.pem
Run Code Online (Sandbox Code Playgroud)
请求看起来像这样:
var options = {
host: 'localhost',
port: 8000,
path: '/api/v1/test'
};
https.request(options, function(res) {
res.pipe(process.stdout);
}).end();
Run Code Online (Sandbox Code Playgroud)
有了这个设置,我想Error: DEPTH_ZERO_SELF_SIGNED_CERT,我想我需要ca为请求添加一个选项.
所以我的问题是我应该如何生成以下内容:
key?cert?ca为请求?我已经阅读了一些关于使用openssl生成自签名证书的事情,但似乎无法绕过它并找出在我的节点代码中使用哪些密钥和证书.
更新
API提供要使用的CA证书而不是默认值.以下代码使用他们的证书,这是我想在本地重现.
var ca = fs.readFileSync('./certificate.pem');
var options = {
host: 'example.com',
path: …Run Code Online (Sandbox Code Playgroud)