4

我正在尝试在 Node.js 中使用 https 模块。

这是代码:

var options = {
    key : <key comes here>,
    cert : <key comes here>
};

https.createServer(options, app).listen(app.get('port'));
4

2 回答 2

4

您可以使用 OpenSSL,像这样创建私钥

openssl genrsa -out ryans-key.pem 1024

获取证书的第一步是创建一个“证书签名请求”(CSR)文件。这是通过以下方式完成的:

openssl req -new -key ryans-key.pem -out ryans-csr.pem

要使用 CSR 创建自签名证书,请执行以下操作:

openssl x509 -req -in ryans-csr.pem -signkey ryans-key.pem -out ryans-cert.pem

要创建 .pfx 或 .p12,请执行以下操作:

openssl pkcs12 -export -in agent5-cert.pem -inkey agent5-key.pem \
    -certfile ca-cert.pem -out agent5.pfx

这是一个简单的示例回显服务器

var tls = require('tls');
var fs = require('fs');

var options = {
  key: fs.readFileSync('server-key.pem'),
  cert: fs.readFileSync('server-cert.pem'),

  // This is necessary only if using the client certificate authentication.
  requestCert: true,

  // This is necessary only if the client uses the self-signed certificate.
  ca: [ fs.readFileSync('client-cert.pem') ]
};

var server = tls.createServer(options, function(cleartextStream) {
  console.log('server connected',
              cleartextStream.authorized ? 'authorized' : 'unauthorized');
  cleartextStream.write("welcome!\n");
  cleartextStream.setEncoding('utf8');
  cleartextStream.pipe(cleartextStream);
});
server.listen(8000, function() {
  console.log('server bound');
});

您可以参考http://nodejs.org/api/tls.html了解更多信息,

问候

于 2013-11-09T06:16:02.897 回答
3

按照Node.js 网站上openssl的说明进行操作。

于 2013-11-09T05:42:55.473 回答