根据公钥和私钥文件创建证书文件

时间:2020-03-04 16:10:55

标签: node.js ssl pem

我对证书一无所知,而今天,由于对在HTTPS上为本地开发生成自签名密钥(使本地和远程主机名与CORS的Access-Control匹配)这一愚蠢的现实而感到沮丧后,今天-Allow-Origin,它只能有一个值,并且当它是CDN时,不能基于客户端/对等方的Host标头动态重写)。我发现了有关生成公钥和私钥对的信息:

const crypto = require('crypto');
const fs = require('fs');

crypto.generateKeyPair('rsa',
  {
    modulusLength: 4096,
    publicKeyEncoding: {
      type: 'spki',
      format: 'pem',
    },
    privateKeyEncoding: {
      type: 'pkcs8',
      format: 'pem',
    }
  },
  (error, publicKey, privateKey) => {
    if (error) {
      throw error;
    }

    fs.writeFile('pub-key.pem', publicKey, console.log);
    fs.writeFile('priv-key.pem', privateKey, console.log);
  });

但这只是一个密钥对。我想知道是否可以使用Node及其加密API创建一个PEM证书文件,该文件使用密钥对中的私钥进行自签名。无需在Node中重新实现一半的OpenSSL,就可以做到吗?

请注意,我感兴趣的范围是用于本地Web开发的自签名证书,只要可以使浏览器接受它,那么它的不安全性或非最佳性实际上并不重要(因为另一种选择是经常在本地开发中禁用CORS,这充其量是最糟糕的选择。

0 个答案:

没有答案