因为这里的配置更多的比较因人而异,很多人的环境都不相同,这里只介绍这种 Docker容器下的 Nginx 环境配置。
- 证书怎么购买我就不再提了,我们下载 Nginx 版本的:
- 下载下来后我们解压并打开文件夹会得到这两个东西:
- key 后缀的是私钥文件,pem 后缀的是证书文件,我们把它们传到服务器上
- 这个目录就是挂载这 nginx 的配置文件的目录,下面是我的 nginx 容器 run 的代码
docker run --name myNginx -p 80:80 -p 443:443 \
-v /myVolume/www:/usr/share/nginx/html \
-v /myVolume/conf.d:/etc/nginx/conf.d \
--link myphp:php nginx
- 扔上去后,我们去修改 nginx 的配置文件 default.conf
- 我们先把帮助文档中的代码复制下来,添加到 default.conf 文件中:
server {
listen 443;
server_name localhost;
ssl on;
root html;
index index.html index.htm;
ssl_certificate cert/a.pem;
ssl_certificate_key cert/a.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
- 然后根据自己的情况修改
server {
listen 443; //ssl 访问端口号为 443
server_name localhost; // 这里要填写你绑定的域名如 www.baidu.com
ssl on; //启用 ssl 功能,默认开启
root html; //这里要填写 nginx 的网页根目录,根据我上面写的这里写:/usr/share/nginx/html
index index.html index.htm; //我用的php搭的博客所以这里也要加上 index.php
ssl_certificate cert/a.pem; //这里改成你的证书文件的名字,因为我们没有创建cert文件夹,
而是直接扔在了conf.d中,所以这里写 conf.d/xxxxxxxx.pem
ssl_certificate_key cert/a.key; //这里同理
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root html; //这里跟上面的root一样
index index.html index.htm; //这里也是如果有php的加上 index.php
}
}
- 按照我上面说的,并根据自己情况这里应该就没问题了
- 然后进入 nginx 容器(写自己的容器名):
docker exec -it myNginx /bin/bash
- 然后输入 nginx -t 来检查配置文件是否正确:
- 出现红框里的文字就说明没有错误,我这里好像有个 warn 。。。不重要
这样ssl证书的安装就完成了。