Nginx配置及SSL证书部署

SSL实现网站HTTPS化

写在前面:本文用到的服务器为阿里的ECS云服务器,操作系统为 Ubuntu 22.04 64位

  1. 安装Nginx
    Nginx在Ubuntu源仓库可用,直接apt安装即可
    1
    2
    sudo apt update
    sudo apt install nginx
    安装完成后Nginx自动启动,可以通过以下命令确认:
    1
    ps -ef|grep nginx
    验证nginx是否启动
  2. 配置防火墙
    启用HTTP(80)端口和HTTPS(443)端口(如果没有安装ufw 请自行安装)
    1
    2
    sudo ufw enable         // 启用防火墙
    sudo ufw allow 'Nginx Full' // Nginx Full 包含上述两个端口
    查看防火墙状态
    1
    sudo ufw status
    可以看到 Nginx Full 已启用(22端口用于SSH连接)
    防火墙状态
  3. 申请SSL证书并部署
    阿里提供了免费的SSL证书,填好相关信息申请后等待签发(十几分钟)
    申请SSL证书
    申请完成下载证书到本地,选择服务器类型为 Nginx
    在 Nginx 目录下新建文件夹 cert (文件夹与 nginx.conf 文件在同一目录)
    如果找不到 Nginx 安装目录,可以使用以下命令确认(或全局搜索 nginx.conf 配置文件也可):
    1
    whereis nginx
    创建好文件夹后把下载下来的pem和key文件丢进文件夹
    创建cert文件夹
  4. 配置 Nginx
    打开上面提到的配置文件 nginx.conf,在 http{} 代码片段内添加以下配置:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #以下属性中,以ssl开头的属性表示与证书配置有关。
    server {
    listen 443 ssl;
    #配置HTTPS的默认访问端口为443。
    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
    server_name yourdomain;
    # yourdomain 替换为自己的域名(与申请的证书一致)
    root html;
    index index.html index.htm;
    ssl_certificate cert/cert-file-name.pem;
    # cert-file-name.pem 替换为刚才添加的 pem 文件
    ssl_certificate_key cert/cert-file-name.key;
    # cert-file-name.key 替换为刚才添加的 key 文件
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    #表示使用的加密套件的类型。
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示使用的TLS协议的类型,您需要自行评估是否配置TLSv1.1协议。
    ssl_prefer_server_ciphers on;
    location / {
    root html; #Web网站程序存放目录。
    index index.html index.htm;
    }
    }
    如果想设置 http 自动跳转 https,继续在 http{} 代码片段内添加以下配置:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    server {
    listen 80;
    server_name yourdomain;
    #需要将yourdomain替换成证书绑定的域名。
    rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。
    location / {
    index index.html index.htm;
    }
    }
  5. 迁移网站文件(具体网站文件该放在哪里请根据自己的安装情况判断)
  • http: /var/www/html
  • https: /usr/share/nginx/html
  1. 重启 Nginx
    1
    nginx -s reload

完结散花~


Nginx配置及SSL证书部署
https://baifabaiquan.cn/2023/02/15/Nginx配置及SSL部署/
作者
白发败犬
发布于
2023年2月15日
许可协议