参数说明
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开始监听"); });