增加SSL配置说明
This commit is contained in:
parent
6e4ee39a47
commit
8198b95e46
73
README.md
73
README.md
@ -31,6 +31,79 @@ docker compose up -d
|
|||||||
- `conf/conf.d/default.conf`文件是默认站点的配置文件。
|
- `conf/conf.d/default.conf`文件是默认站点的配置文件。
|
||||||
- 在`conf/conf.d/`中可以创建多个站点的配置文件,注意相互之间的域名和端口号不要同时冲突。
|
- 在`conf/conf.d/`中可以创建多个站点的配置文件,注意相互之间的域名和端口号不要同时冲突。
|
||||||
|
|
||||||
|
## SSL配置
|
||||||
|
|
||||||
|
以域名`nice.ali02.wandoubaba.com`为例。
|
||||||
|
|
||||||
|
创建文件`conf/conf.d/nice.ali02.wandoubaba.com.conf`,文件内容参考如下:
|
||||||
|
|
||||||
|
```conf
|
||||||
|
server {
|
||||||
|
listen 443 ssl;
|
||||||
|
server_name ali02.wandoubaba.com;
|
||||||
|
|
||||||
|
ssl_certificate /etc/nginx/certs/ali02_wandoubaba_com_cert.pem; # 证书文件路径
|
||||||
|
ssl_certificate_key /etc/nginx/certs/ali02_wandoubaba_com_key.pem; # 私钥文件路径
|
||||||
|
|
||||||
|
ssl_session_cache shared:SSL:1m;
|
||||||
|
ssl_session_timeout 10m;
|
||||||
|
ssl_ciphers HIGH:!aNULL:!MD5;
|
||||||
|
ssl_prefer_server_ciphers on;
|
||||||
|
|
||||||
|
#access_log /var/log/nginx/host.access.log main;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
index index.html index.htm;
|
||||||
|
# 下面这行可以解决vue网页刷新后404的问题,但会将所有不存在的url转到index.html上
|
||||||
|
# try_files $uri $uri/ /index.html last;
|
||||||
|
}
|
||||||
|
|
||||||
|
error_page 404 /404.html;
|
||||||
|
location = /404.html {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
}
|
||||||
|
|
||||||
|
# redirect server error pages to the static page /50x.html
|
||||||
|
#
|
||||||
|
error_page 500 502 503 504 /50x.html;
|
||||||
|
location = /50x.html {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
其中`/etc/nginx/certs/`这个路径是容器内的路径,对应宿主机中的`conf/certs/`目录,所以我们要确保在`conf/certs`目录内存在`ali02_wandoubaba_com_cert.pem`和`ali02_wandoubaba_com_key.pem`这两个文件。至于这两个文件的来源,应该来自于SSL证书的提供商,文件名和文件后缀或许会不同。
|
||||||
|
|
||||||
|
### ACME自动部署SSL证书
|
||||||
|
|
||||||
|
下面我们以`freessl.cn`平台上的免费证书为例,可以通过`acme`实现证书自动化部署和续签,仍以`nice.ali02.wandoubaba.com`为例:
|
||||||
|
|
||||||
|
| 条件 | 具体值 |
|
||||||
|
|---|---|
|
||||||
|
|证书平台|freessl.cn|
|
||||||
|
|域名|nice.ali02.wandoubaba.com|
|
||||||
|
|证书文件路径(宿主机上的绝对路径)|`/app/nginx/conf/certs/nice_ali02_wandoubaba_com_cert.pem`|
|
||||||
|
|证书私钥文件路径(宿主机上的绝对路径)|`/app/nginx/conf/certs/nice_ali02_wandoubaba_com_key.pem`|
|
||||||
|
|
||||||
|
安装`acme.sh`工具:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
curl https://get.acme.sh | sh -s email=my@example.com
|
||||||
|
```
|
||||||
|
|
||||||
|
安装完成后需要退出终端重新进入一次。
|
||||||
|
|
||||||
|
接下来可以使用`acme.sh`命令实现证书自动化部署了,命令示例:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
acme.sh --install-cert \
|
||||||
|
-d nice.ali02.wandoubaba.com \
|
||||||
|
--key-file /app/nginx/conf/certs/nice_ali02_wandoubaba_com_key.pem \
|
||||||
|
--fullchain-file /app/nginx/conf/certs/nice_ali02_wandoubaba_com_cert.pem \
|
||||||
|
--reloadcmd "/app/nginx/service reload"
|
||||||
|
```
|
||||||
|
|
||||||
## 最佳实践
|
## 最佳实践
|
||||||
|
|
||||||
建议不要在本项目的目录中加入任何业务文件,本项目做为单独目录,只提供nginx服务。
|
建议不要在本项目的目录中加入任何业务文件,本项目做为单独目录,只提供nginx服务。
|
||||||
|
Loading…
Reference in New Issue
Block a user