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
Comments NOTHING