前端Nginx服务器Https SSL证书的部署与更换

476 阅读2分钟

前言

我的个人服务器域名的证书三月底就要过期了,于是我这两天打算把他换一下,但是过了一年了具体我也有点忘了,于是自己又清理了一下思路,顺便记录一下,明年的今天的不会忘了。

Nginx的简单介绍

Nginx是一个开源的高性能的HTTP服务器和反向代理服务器。它能够处理成千上万的并发连接,以及高达数百万的并发请求,并具有出色的负载均衡和反向代理功能。Nginx还可以作为一个通用的TCP/UDP代理服务器,支持多种协议,例如HTTP、HTTPS、SMTP、POP3和IMAP等。Nginx已经成为一个非常流行的Web服务器和反向代理服务器,被广泛应用于许多大型的互联网企业、高流量网站、移动应用程序等。

步入正题

  1. 申请SSL证书,且下载证书(购买域名的平台基本是可以的,具体请查看对应平台规则。)

  2. 服务器中的443端口的对外权限保证是开着的(去购买服务器的运营商里看防火墙配置)

  3. 复制证书到nginx的conf目录下

image.png

  1. 配置nginx.conf

    # HTTPS server
    #
    server {
        listen       443 ssl;
        server_name  example.com www.example.com;
    
        ssl_certificate      example.com_bundle.crt;
        ssl_certificate_key  example.com.key;
    
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
    
        # 配置加密套件
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
    
        location / {
            root   html/dist;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
            error_page 405 =200 http://$host$request_uri;
        }
    
        # 处理 API 请求的代理
        location /api/ {
            proxy_pass <http://localhost:9090>;
            proxy_set_header Host $HOST;
            rewrite "^/api/(.*)" /$1 break;
        }
    }
    

    这段代码是一个 Nginx 配置文件中的一部分,它定义了一个 HTTPS 服务器的配置。下面是各部分的含义:

    • listen 443 ssl; :监听 HTTPS 请求的端口 443,并启用 SSL。

    • server_name example.com www.example.com; :配置服务器的域名,即处理该域名的请求。

    • ssl_certificate example.com_bundle.crt;ssl_certificate_key example.com.key; :配置 SSL 证书和私钥的路径。

    • ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m; :配置 SSL 会话缓存和超时时间。

    • ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;ssl_prefer_server_ciphers on; :配置加密套件,使用的是 ECDHE-RSA-AES128-GCM-SHA256,而不使用弱密码套件。同时,优先使用服务器支持的加密套件。

    • location / :处理根路径请求,即网站的静态文件请求。

      • root html/dist; :指定静态文件的根目录。
      • index index.html index.htm; :指定默认的索引文件。
      • try_files $uri $uri/ /index.html; :按照顺序尝试查找请求的文件或文件夹,如果都找不到,则返回默认的索引文件。
      • error_page 405 =200 http://$host$request_uri; :当请求方式不被允许时,返回状态码 200 并显示请求的页面。
    • location /api/ :处理 API 请求的代理。

      • proxy_pass <http://localhost:9090>; :将请求转发到本地的 9090 端口。
      • proxy_set_header Host $HOST; :将请求头中的 Host 字段设置为代理服务器的主机名。
      • rewrite "^/api/(.*)" /$1 break; :重写 URL,将 /api/ 后面的部连接上
  2. 重启Nginx服务器

    nginx -s reload #重新加载Nginx配置文件,然后以优雅的方式重启Nginx