我从托管服务提供商处购买了AlphaSSL。他们只是给我
domain.csr.crt
domain.interCert.crt
domain.PKCS7Cert.crt
domain.rootCert.crt
domain.X509Cert.crt
但是据我所知,要使用Express在Node.JS上运行HTTPS,我至少需要密钥文件和cert文件。那我应该使用哪种文件呢?谢谢。
最佳答案
您将需要一个私钥和一个证书文件,这是Node.js中HTTPS服务器的一个简单示例,您可以看到我们需要同时加载私钥和证书文件。如果您有一个.pfx文件,则它可能同时包含证书和私钥。还要检查这个问题,您可能在.crt文件之一中具有私钥:How do I identify if my certificate contains private key?
使用私钥和证书的示例:
const fs = require('fs');
const https = require('https');
const privateKey = fs.readFileSync('./privateKey.key', 'utf8');
const certificate = fs.readFileSync('./certificate.crt', 'utf8');
const credentials = { key: privateKey, cert: certificate };
const express = require('express');
const app = express();
// Add test route here.
app.get("/test", (req, res) => {
res.status(200).send("All good");
})
const server = https.createServer(credentials, app);
server.listen(8443);
使用.pfx文件:
const https = require('https');
const fs = require('fs');
const options = {
pfx: fs.readFileSync('test/fixtures/test_cert.pfx'),
passphrase: 'sample'
};
https.createServer(options, (req, res) => {
res.writeHead(200);
res.end('hello world\n');
}).listen(8000);
(来自Node.js文档的示例:Https Example)