首页 Node.js核心模块手册

参数说明


createServer(objects, callback)
objects                         对象数组
callback(           可选      回调函数(可用 request 事件代替)
  req,                                 客户端请求对象,http.IncomingMessage对象,参考:request
  res                                  服务器响应对象,http.ServerResponse对象,参考:response
)

返回值:对象,参考:server



objects相关属性:
pfx:字符串 或 Buffer,指定pfx文件读取出的私钥、公钥、证书(使用该属性,不要指定key、cert、ca值)
passphrase:字符串,为私钥文件 或 pfx文件指定密码
key:字符串 或 Buffer,指定后缀为pem的私钥文件读出的私钥
cert:字符串 或 Buffer,指定后缀为pem的私钥文件读出的公钥
ca:字符串数组 或 Buffer数组,指定一组证书,如:VerISign
crl:字符串 或 字符串数组,指定证书吊销列表
ciphers:字符串,使用或取消使用的密码,默认值:AES128-GSM-SHA256: RC4: HIGH: !MD5: !aNULL: !EDH
handshakeTimeout:整数,指定服务器与客户端握手超时时间,默认120秒,超时触发clientError事件
honorCipherOrder:布尔,默认false。true服务器将密码列表发给客户端,有客户端选择
requestCert:布尔,默认false。true服务器确认连接前要求客户端提供证书
rejectUnauthorized:布尔,默认false。true服务器拒绝所所有不能提供证书的客户端请求,requestCert必须是true
NPNProtocols:数组 或 Buffer,指定服务端使用的NPN协议
sessionIdContext:字符串,指定服务端session唯一标识。requestCert为true时,默认值时MD5散列值,false时没有默认值

注:其它对象、方法、属性,参考HTTP模块

pfx证书:


var https = require("https");
var fs = require("fs");

var obj = {  //pfx文件 及 密码
  pfx: fs.readFileSync("www.liboke.cn.pfx"),
  passphrase: "pfx密码******"
};

var server = https.createServer(obj);

server.listen(443, "localhost");   //注意:https的端口是443

pem证书


var https = require("https");
var fs = require("fs");

var obj = {  //pem文件路径
  key: fs.readFileSync("./***.key"),
  cert: fs.readFileSync("./***.crt")
};

var server = https.createServer(obj);

server.listen(443, "localhost");   //注意:https的端口是443

http转https


注:在HTTPS服务器下添加

var http = require("http");
http.createServer((req, res)=>{
  res.statusCode = 301;
  //重定向到https
  res.setHeader("Location", "https://" + req.headers.host + req.url);
  res.end();
}).listen(80, ()=>{
  console.log("80开始监听");
});