一尘不染

如何为https Web服务器创建.pem文件

node.js

我正在使用Node.js中的Express框架来创建Web服务器。我希望传输基于SSL。

创建https Web服务器的代码如下。

var app = express.createServer({
  key: fs.readFileSync('./conf/key.pem'),
  cert: fs.readFileSync('./conf/cert.pem')
});
module.exports = app;

问:如何创建express所需的key.pem和cert.pem?


阅读 319

收藏
2020-07-07

共1个答案

一尘不染

您需要的两个文件是PEM编码的SSL证书和私钥。PEM编码的证书和密钥是Base64编码的文本,带有看起来像-----BEGIN RSA PRIVATE KEY-----或相似的开始/结束定界符。

要创建SSL证书,您首先需要生成一个私钥和一个证书签名请求或CSR(其中也包含您的公钥)。您可以通过多种方式来做到这一点,但这是OpenSSL中的方法。

openssl req -newkey rsa:2048 -new -nodes -keyout key.pem -out csr.pem

这将导致您输入一个交互式提示,以生成一个2048位RSA私钥和一个CSR,其中包含您在提示处选择输入的所有信息。(
注意:“公用名”是您要用来放置用于访问网站的域名的位置。
)完成此操作后,通常需要将此CSR提交给受信任的证书颁发机构,并且在他们通过验证之后您的请求将获得证书。

如果您不关心证书是否受信任(通常出于开发目的),则可以创建一个自签名证书。为此,我们可以使用几乎同一行,但是我们将传递两个额外的参数。

openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem

这将为您提供证书(有效期为10年)和密钥对,您可以在发布的代码段中使用它。

2020-07-07