Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

HTTP2.0的实现

0
0

HTTP2.0的实现
前言

刚刚把全站上了HTTPS,部署了CDN。在部署CDN的时候发现有个HTTP2.0支持的选项,于是开始升级HTTP2.0

安装Verynginx

这是一个开源的nginx扩展项目,为nginx增加了很多有用的功能,自带了一些防火墙措施,而且提供了相当友好的控制界面

安装步骤:

#更新一下系统 apt update apt upgrade && apt dist-upgrade #安装依赖环境 apt install git wget perl make build-essential procps libreadline-dev libncurses5-dev libpcre3-dev libssl-dev #添加nginx用户组 groupadd -r nginx && useradd -r -g nginx nginx #下载Verynginx git clone https://github.com/alexazhou/VeryNginx.git #安装Verynginx cd VeryNginx python install.py install 启动Verynginx #启动 sudo /opt/verynginx/openresty/nginx/sbin/nginx #重载配置 sudo /opt/verynginx/openresty/nginx/sbin/nginx -s reload 申请证书 申请的腾讯云的 免费SSL证书 > 传送门 如果有域名直接申请即可,没有域名,腾讯云 .club域名首年1元 > 传送门 申请证书选择 免费版DVSSL证书 填写相关信息即可,如果是腾讯云够买的域名会直接发放证书,如果是其他服务商购买的需要自行添加 TXT记录 进行域名认证 部署证书 进入SSL证书管理,下载相应的证书 解压zip压缩包,将nginx目录下的 XXXX.crt 和 XXXX.key 上传到服务器上,假设目录为 /path/to/ssl 修改Verynginx配置文件

1、编辑 /opt/verynginx/openresty/nginx/conf/nginx.conf

2、添加一个include语句

include /opt/verynginx/verynginx/nginx_conf/in_http_block.conf; include /opt/verynginx/verynginx/nginx_conf/sites/*.conf; #添加此行代码 server { listen 80; #this line shoud be include in every server block include /opt/verynginx/verynginx/nginx_conf/in_server_block.conf; location = / { root html; index index.html index.htm; } }

3、 创建文件夹 mkdir /opt/verynginx/verynginx/nginx_conf/sites

4、 进入该文件夹并新建 XXX.conf cd/opt/verynginx/verynginx/nginx_conf/sites && touch XXXX.conf

5、 编辑 XXXX.conf 文件内容如下:

server { listen 443 ssl http2 fastopen=3 reuseport; #开启HTTP2.0支持并启用端口复用 server_name XXXX; #你的域名 ssl on; ssl_certificate /path/to/ssl/XXXX.crt; #证书crt文件的路径 ssl_certificate_key /path/to/ssl/XXXX.key; #证书key文件的路径 ssl_stapling on; #开启OCSP Stapling ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 10s; ssl_buffer_size 8k; ssl_session_tickets on; ssl_session_cache shared:SSL:20m; ssl_session_timeout 10m; #设置加密协议,TLSv1协议将于2019年被废弃,如果不用IE6老古董建议不启用 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4'; #开启HSTS务必保证所有子域名都已经配置好HTTPS,否则删除掉includeSubdomains add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload" always; #防止点击劫持 add_header X-Frame-Options SAMEORIGIN always; #防止XSS攻击 add_header X-XSS-Protection "1; mode=block" always; #防止MIME探测 add_header X-Content-Type-Options nosniff; #this line shoud be include in every server block include /opt/verynginx/verynginx/nginx_conf/in_server_block.conf; root /path/to/website; #网站根目录 location / { #与普通nginx配置相同 } } 重启Verynginx #重载配置 sudo /opt/verynginx/openresty/nginx/sbin/nginx -s reload
HTTP2.0的实现

Viewing all articles
Browse latest Browse all 12749