Nginx 学习笔记 (a0) – 开启 HTTP/2, TLS 1.3 和 HSTS
不过瘾?再折腾 HTTP/2 、TLS 1.3 和 HSTS,力求在 SSL Server Test 达到 A+!
1) 安装新版 OpenSSL (新版本见)。要启用 TLS 1.3,起码得 1.1.1 以上才行。
cd /usr/local/src
wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz && tar zxf openssl-1.1.1d.tar.gz && cd openssl-1.1.1d
./config --prefix=/usr/local/openssl
make && make install
2) 替换掉旧版,尔后以 openssl version
判断是否升级完成。
mv /usr/bin/openssl /usr/bin/openssl.old
mv /usr/include/openssl /usr/include/openssl.old
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
echo "/usr/local/openssl/lib/" >> /etc/ld.so.conf
ldconfig -v
3) nginx -V
列出现有的参数。追加参数 --with-openssl=../openssl-1.1.1d
后,重新编译 Nginx。
cd /usr/local/src/nginx-1.16.1
./configure \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_sub_module \
--with-openssl=../openssl-1.1.1d
make
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
cp objs/nginx /usr/local/nginx/sbin/nginx
make upgrade
4) 回去编辑 server.conf (至于 Cipher Suites 的部分,不妨参考下 Cloudflare 的配置)。另外提醒 HSTS 是浏览器端直接强制 HTTPS,而非 HTTP 301 重定向至 HTTPS,如不确定后续会否继续使用 HTTPS,请注释掉那行代码。
server {
...
listen 443 ssl http2;
ssl_protocols TLSv1.3;
add_header Strict-Transport-Security 'max-age=63072000; includeSubDomains; preload';
...
}
⚠️ 如果前面使用的 Certbot,要么注释掉 include /etc/letsencrypt/options-ssl-nginx.conf;
,要么不用加 ssl_protocols TLSv1.3;
。
微信赞赏支付宝扫码领红包
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。侵权投诉:375170667@qq.com