我已经从GlobalSign购买了SSL证书,并且接收方2 .crt文件之一是gs_intermediate_ca.crt(中级)和domain_name.crt(将域名替换为我自己的域名)。
我想在Windows Server 2010中使用PM2在Node.js中部署我的Web API。某些Web应用程序将调用此API来检索QR Code等数据。
但是,我找不到使用HTTPS启动服务器的方法,并且没有私钥(.key)文件。我怎么得到的?我想念的地方是什么,我读了很多文档,但仍然听不懂。
如果我在服务器上使用openssl生成ssl是没有问题的。但是,当我为公共网站购买时,我只收到了这两个文件。需要您的帮助。
const http = require('http')
const https = require('https')
const fs = require('fs')
const express = require('express')
const bodyParser = require('body-parser')
const chalk = require('chalk')
const app = express()
const cors = require('cors')
//https load key
var options = {
key: fs.readFileSync('./server/ssl/cert.key', 'utf8'),
cert: fs.readFileSync('./server/ssl/cert.crt', 'utf8')
};
//end https load key
app.use(express.static('public'))
app.use(bodyParser.json())
app.use(cors())
app.use(bodyParser.urlencoded({
extended: true
}))
app.set("mobile_url", "#");
require('./main.js')(app);
app.listen(7555, () => {
console.log(chalk.white.bgGreen.bold('[HTTP-Server] running on http://localhost:7555'));
});
https.createServer(options, app).listen(7556, () => {
console.log(chalk.white.bgGreen.bold('[HTTPS-Server] running on https://localhost:7556'));
});
app.get('/', function (req, res) {
res.end('Started.');
});
答案 0 :(得分:1)
在我所在的公司中,应用程序开发人员负责使用我们专有的安全工具包生成私钥。 CA(在您的情况下为GlobalSign)应该只收到证书签名请求,然后提供将用于签名私钥的“证书签名响应”。
从另一家公司那里接收私钥是没有意义的,因为它的名字表示必须为 private 。通信双方之间仅交换公钥。
NodeJS文档包含以下信息:
“可以以多种方式生成私钥。” -TLS/SSL Concepts
答案 1 :(得分:0)
从来没有,我已经解决了这个问题,下载了DigiCert,并在应用程序中加载了.crt文件,然后生成了私钥。因此,问题得以解决。