搭建https和http2服务器
Posted 编程杂技
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建https和http2服务器相关的知识,希望对你有一定的参考价值。
1 nginx搭建https服务器
1.安装openssl sudo apt-get install openssl
2.生成服务器的私钥和证书
openssl genrsa -des3 -out cyb.key 2048
openssl req -new -key cyb.key -out cyb.csr
openssl rsa -in cyb.key -out cyb_nopass.key
openssl req -new -x509 -days 3650 -key cyb_nopass.key -out cyb.crt
nginx启动的时候需要去读取cyb.key这个文件里的私钥,但是这个文件是需要密码才能打开的,所以需要生成一个不需要密码打开的文件nopass.keycyb_nopass.key,这样才能配置配置成功,否则在error.log里会有出错提示。
3.配置文件nginx.conf
配置完之后启动nginx,访问https://localhost就可以看到welcome to nginx这个页面。执行 netstat -an| grep 443命令可以看到有进程在监听443端口。这样就实现了https服务。
2 用nodejs创建一个https服务器
var https = require('https');
var fs = require('fs');
var options = {
key: fs.readFileSync('./files/server-key.pem'),
ca: [fs.readFileSync('./files/ca-cert.pem')],
cert: fs.readFileSync('./files/server-cert.pem')
};
https.createServer(options,function(req,res){
res.writeHead(200);
res.end('hello world\n');
}).listen(11111);
证书可以百度一下怎么生成,最后执行,访问https://localhost:11111即可。
3 用nodejs创建一个http2服务器
使用谷歌的spdy协议。首先安装spdy协议,npm install spdy
const http2 = require('./node_modules/spdy/lib/spdy');
var fs = require('fs');
var options = {
key: fs.readFileSync('./files/server-key.pem'),
ca: [fs.readFileSync('./files/ca-cert.pem')],
cert: fs.readFileSync('./files/server-cert.pem')
};
http2
.createServer(options, function(req,res){
res.writeHead(200);
res.end('hello world\n');
})
.listen(8080)
访问https://localhost:8080即可,spdy强制使用https。
以上是关于搭建https和http2服务器的主要内容,如果未能解决你的问题,请参考以下文章