当前位置:首页 > 群晖专栏 > 运维部署 > 正文内容

Nginx 配置 OCSP Stapling 优化 HTTPS 访问

admin4年前 (2021-01-03)运维部署117

前言

由于国内网络对 Let's Encrypt 域名证书的 OSCP 服务器域名进行了 DNS 污染,用户在访问网站时,请求 OSCP 服务器的过程会导致网站访问速度很慢.本文将介绍如何通过配置网站的 nginx 来预先装订 OCSP 证书,达到优化 https 访问速度的效果.



配置流程

修改 nginx 域名 conf 文件

修改域名 conf 文件,在证书信息下加入以下代码:

    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_trusted_certificate /path/to/full_chain.pem;
    resolver 8.8.8.8 8.8.4.4 valid=60s ipv6=off;
    resolver_timeout 5s;
  • full_chain.pem为完整证书链证书.

  • /path/to/full_chain.pem;修改为证书实际绝对路径.

  • 由于国内 VPS 服务器访问 OCSP 服务器可能会被污染而导致失败,所以添加resolver来解决此问题.


修改完成后执行 nginx -t 检查,执行 nginx -s reload 重载 nginx 生效.
docker 环境执行 docker exec nginx nginx -t 检查,执行 docker exec nginx nginx -s reload 重载 nginx 生效.

检查生效

在客户端,例如 macOS Linux 等系统下执行以下命令检查是否生效:

openssl s_client -connect www.yourdomain.com:443 -servername www.yourdomain.com -status -tlsextdebug < /dev/null 2>&1 | grep -i "OCSP response"
# 将命令中 www.yourdomain.com 改为你的域名

未生效结果

OCSP response: no response sent

成功生效结果

OCSP response:
OCSP Response Data:
    OCSP Response Status: successful (0x0)
    Response Type: Basic OCSP Response


配置完成后首次检查可能会显示未生效,因为 Nginx 收到首次请求会发起异步 OCSP 请求,尝试多执行几次来查询即可.

参考示例

upstream dockername { 
    server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name  www.yourdomain.com;
    return 301 https://www.yourdomain.com$request_uri;
}

server {
    listen 443 ssl;
    server_name  www.yourdomain.com;
    gzip on;    

    ssl_certificate /usr/local/nginx/conf/ssl/www.yourdomain.com.crt;
    ssl_certificate_key /usr/local/nginx/conf/ssl/www.yourdomain.com.key;

    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_trusted_certificate /usr/local/nginx/conf/ssl/www.yourdomain.com.crt;
    resolver 8.8.8.8 8.8.4.4 valid=60s ipv6=off;
    resolver_timeout 5s;    

    # access_log /var/log/nginx/dockername_access.log combined;
    # error_log  /var/log/nginx/dockername_error.log;

    location / {
        proxy_redirect off;
        proxy_pass http://dockername;

        proxy_set_header  Host                $http_host;
        proxy_set_header  X-Real-IP           $remote_addr;
        proxy_set_header  X-Forwarded-Ssl     on;
        proxy_set_header  X-Forwarded-For     $proxy_add_x_forwarded_for;
        proxy_set_header  X-Forwarded-Proto   $scheme;
        proxy_set_header  X-Frame-Options     SAMEORIGIN;

        client_max_body_size        100m;
        client_body_buffer_size     128k;

        proxy_buffer_size           4k;
        proxy_buffers               4 32k;
        proxy_busy_buffers_size     64k;
        proxy_temp_file_write_size  64k;
    }
}

结语

如果是境外 VPS 服务器,可以无需上述代码中含有resolver的两行代码,手动删除即可.国内 VPS 可试情况修改参数中的 DNS 地址来测试是否生效.

本站提供免费和付费的技术支持.你可以通过留言,邮件,QQ的方式来进行技术交流和免费咨询.同时也可以付费支持的方式获得相关的技术支持,项目部署配置等服务.具体相关详情请点击查看 技术支持页面



扫描二维码推送至手机访问。

版权声明:本文由梦魁网络资源站发布,如需转载请注明出处。

本文链接:https://family.monkui.com:39/?id=198

标签: 运维部署
分享给朋友:

相关文章

免费申请Let's Encrypt泛域名SSL证书教程

免费申请Let's Encrypt泛域名SSL证书教程

前言本站介绍过如何申请阿里云和腾讯云免费SSL证书教程,但该SSL证书为单域名证书,只为ioiox.com和www.ioiox.com生成证书,如果我们有例如typecho.ioiox.com,wordpress.ioiox.com等多个二...

Nginx设置301重定向到www和强制跳转https教程

Nginx设置301重定向到www和强制跳转https教程

前言本文将详解如何配置Nginx的conf文件来使域名跳转到www和强制跳转到https首先在建站之前,需要确认今后网站是使用类似ioiox.com一级域名,还是www.ioiox.com二级域名,根据域名长度,使用场景,域名视觉美观来决定...

宝塔面板一键安装LNMP和LAMP环境教程

宝塔面板一键安装LNMP和LAMP环境教程

前言本文将详解如何在Linux服务器上通过宝塔面板来快速安装配置LNMP或LAMP环境.LNMP和LAMP是服务器建站环境的简称,LNMP即Linux/Nginx/MySQL/PHP,而LAMP即Linux/Apache/MySQL/PHP...

Apache设置Typecho伪静态去掉index.php教程

Apache设置Typecho伪静态去掉index.php教程

前言Typecho博客初始安装完成后,博客的任何内页面,地址栏都会有index.php(例如https://www.ioiox.com/index.php/archives/about.html)非常影响美观和网站结构,本文将详解在Apac...

一键安装脚本为CentOS 7 添加Swap交换分区

一键安装脚本为CentOS 7 添加Swap交换分区

前言由于阿里云,腾讯云等云服务器默认系统镜像不带Swap分区,本文将介绍使用简单的一键安装脚本为CentOS7添加Swap交换分区.配置流程一、检查Swap分区登录服务器输入free -mSwap分区为0则表示无Swap分区二、下...

Docker部署ShareList分享OneDrive,Google Drive和WebDAV教程

Docker部署ShareList分享OneDrive,Google Drive和WebDAV教程

前言ShareList 是一个易用的网盘工具,支持快速挂载 GoogleDrive、OneDrive ,可通过插件扩展功能。ShareList项目地址目前网上有很多支持OneDrive的网盘工具,本站也曾介绍过,而ShareList最大的不...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。