NGINX配置HTTPS和HTTP/2以及IPv6

安装NGINX的时候,添加下面两项编译参数:

--with-http_ssl_module
--with-http_v2_module

编辑配置文件 vi /usr/local/nginx/conf/nginx.conf 填写以下内容:

server {
        listen       443 ssl http2;          #监听IPv4的443端口并启用HTTPS和HTTP/2
        listen       [::]:443 ssl http2;     #监听IPv6的443端口并启用HTTPS和HTTP/2
        server_name  你的域名;               #绑定的域名
        add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";    #开启HSTS

        ssl_certificate      你的证书路径;          #证书位置
        ssl_certificate_key  你的私钥路径;          #私钥位置
        ssl_session_cache    shared:SSL:10m;        #会话缓存的类型和大小
        ssl_session_timeout  10m;                   #会话缓存的过期时间
        ssl_early_data       on;                    #开启TLS1.3的0-RTT
        ssl_protocols        TLSv1.2 TLSv1.3;       #指定支持的加密协议
        ssl_prefer_server_ciphers  on;              #优先使用服务器加密套件
        ssl_stapling         on;                    #开启 OCSP Stapling
        resolver         8.8.8.8 8.8.4.4 208.67.222.222 208.67.220.220 valid=300s;    #查询OCSP的DNS服务器和查询缓存时间
        resolver_timeout 5s;                        #DNS查询超时时间
        ssl_stapling_verify  on;                    #开启 OCSP Stapling 验证
    }

设置HTTP请求301跳转到HTTPS

server {
        listen      80;                #监听IPv4的80端口
        listen      [::]:80;           #监听IPv6的80端口
        server_name 你的域名;          #绑定的域名
        return 301 https://你的域名;   #跳转类型和跳转目标
    }

设置DNS CAA记录

以 Let’s Encrypt 证书为例,CAA记录填写为 0 issue "letsencrypt.org"

另外,使用 Let’s Encrypt 证书时,NGINX可能会报错: "ssl_stapling" ignored, host not found in OCSP responder "ocsp.int-x3.letsencrypt.org" in the certificate "你的证书路径"

这是由于不可抗力导致 Let’s Encrypt 的 OCSP 服务器无法访问造成的,可以尝试编辑Hosts:vi /etc/hosts 添加 23.205.154.146 ocsp.int-x3.letsencrypt.org

更改TLS1.3的加密套件

TLS1.3的加密套件无法在NGINX中直接指定,但是我们可以通过修改系统配置文件的方法来设定 vi /etc/crypto-policies/back-ends/opensslcnf.configCiphersuites 中列出了可选的加密套件,假如我们想使用 TLS_AES_128_GCM_SHA256 就更改为 Ciphersuites = TLS_AES_128_GCM_SHA256

发表评论

电子邮件地址不会被公开。 必填项已用*标注