Linux 下的 Nginx 配置 NameCheap 证书(Comodo PositiveSSL)实现 HTTPS 加密访问

  证书申请、激活这里不记录了,有免费的也有付费的,自己玩去~

 

  激活后下载的包里有一个 ca-bundle 和一个 crt 文件

 

 

 

  1、检查 Nginx SSL 模块

# 进入 nginx 启动目录执行 -V
/usr/sbin/nginx -V

  如果没有 --with-http_ssl_module 那就要装 SSL 模块了

 

 

 

  2、合并文件

  将 ca-bundle 文件的所有内容复制到 crt 文件里面,合并成一个新的 crt 文件

 

  

  3、 新建文件夹

  在 Nginx 的 conf 文件夹的同级目录新建 ssl

cd /etc/nginx    # 进入 nginx 安装目录

sudo mkdir ssl   # 建立文件夹

sudo chmod -R 777   #给权限:非必须

 

 

 

 

  4、上传文件到 ssl 目录

  将合并后的  crt 文件 和生成 csr 文件的时候同时生成的 key 文件上传到 ssl 目录(最好命名一致)

 

 

  5、配置 nginx 的 conf

  进入 conf 所在目录新建一个文件 后缀为 .conf

cd /etc/nginx/cnfg.d

sudo vim meta.conf

  我直接贴代码了

server {
        listen 80;
        server_name metamxxxx.games www.metamxxxx.games;
        rewrite ^(.*) https://www.metamxxxx.games$1 permanent;
}

server {
    listen 443 ssl http2;
    server_name www.metamxxxx.games;

    ssl_certificate  /etc/nginx/ssl/metamxxxx.games.crt;
    ssl_certificate_key /etc/nginx/ssl/metamxxxx.games.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_timeout 10m;
    ssl_session_cache builtin:1000 shared:SSL:10m;
    ssl_buffer_size 1400;
    add_header Strict-Transport-Security max-age=15768000;
    ssl_stapling on;
    ssl_stapling_verify on;

    gzip on;
    gzip_buffers 32 4K;
    gzip_comp_level 6;
    gzip_min_length 100;
    gzip_types text/plain font/ttf application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    gzip_disable "MSIE [1-6]\."; #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)
    gzip_vary on;
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
    add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
    location / {
          proxy_pass http://127.0.0.1:8000;
    }
}

server {
        listen 443 default_server;
        server_name _;

        ssl_certificate  /etc/nginx/ssl/metamxxxx.games.crt;
        ssl_certificate_key /etc/nginx/ssl/metamxxxx.games.key;
        return 500;
}

  这里已经配了 https 访问、http 转 https、防止空主机头访问

 

  6、重新加载 Nginx

sudo /usr/sbin/nginx -s reload

# 重启也行,但是不建议

 

  7、检查域名指向是否无误,安全组、防火墙、端口有没有开放 443

  

  确认无误就可以正常访问的了

 

posted @ 2022-07-20 10:54  林诺欧巴  阅读(454)  评论(0编辑  收藏  举报