操作系统:Windows 10
Node.js 版本:node-v8.11.4-win-x64
node-forge 版本:0.7.7-dev
大家,我在尝试创建 Node.js https 服务器时遇到了困难。
服务器背后的想法是它仅适用于本地环回请求。
考虑到这一点并出于隐私考虑,我想到了在每次服务器重新启动时更新的一次性自签名证书。
根据建议,我尝试使用 node-forge 模块来生成一次性证书。
在https://www.npmjs.com/package/node-forge阅读他们的说明,我得到了一个非常简单的代码:
var https = require('https');
var forge = require('node-forge');
forge.options.usePureJavaScript = true;
var pki = forge.pki;
var keys = pki.rsa.generateKeyPair(2048);
var cert = pki.createCertificate();
cert.publicKey = keys.publicKey;
cert.serialNumber = '01';
cert.validity.notBefore = new Date();
cert.validity.notAfter = new Date();
cert.validity.notAfter.setFullYear(cert.validity.notBefore.getFullYear()+1);
var attrs = [
{name:'commonName',value:'example.org'}
,{name:'countryName',value:'US'}
,{shortName:'ST',value:'Virginia'}
,{name:'localityName',value:'Blacksburg'}
,{name:'organizationName',value:'Test'}
,{shortName:'OU',value:'Test'}
];
cert.setSubject(attrs);
cert.setIssuer(attrs);
cert.sign(keys.privateKey);
var pem_pkey = pki.publicKeyToPem(keys.publicKey);
var pem_cert = pki.certificateToPem(cert);
console.log(pem_pkey);
console.log(pem_cert);
https.createServer( …
Run Code Online (Sandbox Code Playgroud)