nginx 配置https_NGINX 一文配置 HTTPS (TLS1.3)

3e8e38a0c28cf668ab51b704d3b7a135.png

TLS1.3 是现在最新的 HTTPS 加密版本,网上很多教程为了兼容老版本,会写一大堆配置。本文给一个精简的开启且只开启 TLS1.3 的配置,适用于不用考虑兼容性的个人网站。

user www-data;
pcre_jit on;
events { multi_accept on; }

http {
    sendfile   on;
    tcp_nopush on;

    include      mime.types;
    default_type application/octet-stream;

    ssl_protocols  TLSv1.3;
    ssl_early_data on; # 0-RTT,若担心安全问题可关掉
    ssl_stapling   on; # 如果用CDN的证书需去掉这两行
    ssl_stapling_verify on;
    ssl_certificate     certs/yoursite.com.crt; # 如果有多个虚拟主机可不放这里
    ssl_certificate_key certs/yoursite.com.key; # 为相对于/etc/nginx的路径

# 真正的虚拟主机配置
server {
    listen [::]:443 ssl http2;
    server_name yoursite.com;

    root /var/www/html;
    add_header Strict-Transport-Security "max-age=15768000" always; # 根据自己需要修改
}

# www跳转apex
server {
    listen [::]:443 ssl http2;
    server_name www.yoursite.com;
    return 301 $scheme://yoursite.com$request_uri;
}

# http跳转https
server {
    listen [::]:80;
    server_name yoursite.com *.yoursite.com;
    return 301 https://$host$request_uri;
}

# 禁止Host不匹配的访问
server {
    listen [::]:80 default_server reuseport ipv6only=off; # 想分开监听V4就去掉ipv6only
    listen [::]:443 ssl default_server reuseport ipv6only=off;

    ssl_certificate     certs/selfsigned.crt; # 使用openssl生成的自签证书
    ssl_certificate_key certs/selfsigned.key;

    return 444;
}
}

缩进稍微处理了一下,以便缩小宽度。

还要简单解释几句。

ssl_session_cache是不需要使用的,此指令用于老浏览器不支持其它方式的TLS会话复用,靠它来启用服务端的。TLS1.3也不会使用它来会话复用。

ssl_ciphers无需指定,默认就会使用aes128和256-gcm以及chacha20。

ssl_prefer_server_ciphers不要启用,在有aes硬件加速的设备上,aes加密的效率比chacha20高。应让现代浏览器来选择加密方式,在不支持aes加速的设备上它会自动选择chacha20,若支持则自动选择aes。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值