docker nginx + https 子域名配置详细教程
今天刚好要帮朋友的服务器搬家,因此把服务器的基础设备都配置了一次, 但在配置的时候遇到了一些问题。原来现在的 google chrome / safari 是会 强制性把http转换成为https 。
刚开始的时候并不知道什么回事,还将域名的记录重新设置了一遍。而且在 ping 的时候域名是能够成功被解析出服务器地址的,因此把矛头转向了 http -> https的过程中 ,我用微信的内置的浏览器发现是能够访问http的域名。因此要设置一下证书。
这边我使用的证书也是免费的 acme.sh 在github上就能够找到该了。我们先把他下载下来
然后重新加载一下 bash
这时候你输入 acme.sh --help
就能够很清晰地看到相关输出了
配置acme
在完成安装以后我们开始生产证书,这边我们直接使用dns api 来完成域名校验等操作
具体的请看
假设我这边以godady为例子
先在终端配置文件中 设置key和secret (从服务商中获取)
接下来我们直接输入命令
这里会生成证书文件。通常都是保存在 /root/.acme.sh/xxx.com/xxx.com.cer 下面,
为了方便维护我们的docker volume 我们重新创建一个文件夹放这些证书
再输入命令把证书放在ssl目录下
这时候你在 /opt/www/nginx/ssl 下可以看到有2个文件在这
这时候域名证书的配置就算完成了。然后我们配置一下docker-compose.yml
使用docker-compose创建容器
写好yml文件以后, 我们再来配置一下nginx的配置, 在配置nginx 设置之前我们要先配置一下密匙交换的文件 dhe参数文件
然后我再配置一下 /.well-known/acme-challenge
此目录是必须要让let's encrypt
去访问的 因此我们必须要先配置一下该目录
先创建一个目录 mkdir /opt/www/letsencrypt
然后再把下面的server 配置在nginx 配置文件中
上方的配置是把所有http请求跳转到https中,
然后我们在配置一下自己的域名,
如果有子域名需要配置的话 只需要复制一份上方的配置 修改一下这些位置, 其他的配置可保持不变。 域名服务商那边也要加一条a记录
最终的nginx conf为:
到目前位置 我们的配置就基本上告一段落了
现在只需要运行命令
就可以完成docker 内 nginx的+https多域名配置
到此这篇关于docker nginx + https 子域名配置详细教程的文章就介绍到这了,更多相关docker nginx https 配置内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!