有时候,需要创建一个https服务器,以便测试使用。使用node.js完成此项工作还是比较简单的。另外,为了可以创建https,需要openssl工具栈。
首先创建证书:
openssl genrsa -out key.pemopenssl req -new -key key.pem -out csr.pemopenssl x509 -req -days 9999 -in csr.pem -signkey key.pem -out cert.pemrm csr.pem复制代码
然后可以看到生成的两个文件:
$ls *.pem cert.pem key.pem复制代码
创建node.js文件
编辑js源代码文件(server.js)
var https = require('https');var fs = require('fs');var options = { key: fs.readFileSync('key.pem'), cert: fs.readFileSync('cert.pem')};var a = https.createServer(options, function (req, res) { res.writeHead(200); res.end(JSON.stringify({ foo:"bar"}))}).listen(8000);复制代码
##尝试
运行服务器:
node server.js复制代码
然后访问:
https://localhost:8000复制代码
可以看到json文件的话,就算成功。
如果是http服务器
这样情况,不需要证书,代码改成下面的就可以了。
const http = require('http') const port = 3000const requestHandler = (request, response) => { console.log(request.url) response.end(JSON.stringify({ foo:"bar"}))}const server = http.createServer(requestHandler)server.listen(port, (err) => { if (err) { return console.log('something bad happened', err) } console.log(`server is listening on ${port}`)})复制代码