我从托管服务提供商处购买了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

08-19 09:58