02-HTTPS访问网站

nobility 发布于 2020-08-19 1790 次阅读


HTTPS 访问网站

上传 SSL 证书

从云厂商购买 SSL 证书后,下载 Nginx 版的证书,并上传到服务器进行解压。Nginx 版证书一般会包含这几个文件。

  • CSR 文件:github.com.csr
  • 证书文件: github.com.crt
  • 私钥文件:github.com.key

CSR 文件是申请证书时由你上传或系统在线生成,用于提供给 CA 机构的。安装时可忽略该文件

修改 Nginx 配置文件

修改 Nginx 映射到宿主机的配置文件,打开 /etc/nginx/conf.d/default.conf 文件,并复制下面的配置。

server {
     # SSL 默认访问端口号为 443
     listen 443 ssl; 
     # 绑定证书的域名(需要修改)
     server_name github.com; 
     # 证书文件的相对路径或绝对路径(需要修改)
     ssl_certificate /etc/nginx/conf.d/ssl/github.com.crt; 
     # 私钥文件的相对路径或绝对路径(需要修改)
     ssl_certificate_key /etc/nginx/conf.d/ssl/github.com.key; 
     # 连接超时时间
     ssl_session_timeout 5m;
     # 配置协议
     ssl_protocols TLSv1.2 TLSv1.3; 
     # 配置加密套件,写法遵循 openssl 标准
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
     # 优先使用自己配置的加密算法
     ssl_prefer_server_ciphers on;
    # 开启 Nginx 访问日志
    # access_log  /var/log/nginx/host.access.log  main;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        # 填写要代理的 IP,这里填写 WordPress 的 IP(需要修改)
        proxy_pass http://172.18.0.2;
        # 配置跨域请求来源
        add_header 'Access-Control-Allow-Origin' '*' always;
        # 配置跨域请求方法
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
        # 客户端上传 body 最大值
        client_max_body_size 256M;
    }
    # 错误状态码对应的 path
    error_page   500 502 503 504  /50x.html;
    # 错误页配置
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

server {
    # http 默认访问端口 80
    listen 80;
    # 绑定证书的域名(需要修改)
    server_name github.com;
    # 把 http 域名请求转成 https
    return 301 https://$host$request_uri; 
}

重新加载 Nginx 配置文件

进入 Nginx 容器重新加载配置文件。

# 进入 Nginx 容器
docker exec -it root_nginx_1 /bin/bash
# 重新加载 Nginx 配置文件
nginx -s reload
此作者没有提供个人介绍
最后更新于 2020-08-19