首先拉取镜像 chishin/nginx-proxy-manager-zh
创建容器,你这样设置
然后创建就行
Docker安装的本地IP为 http://192.168.5.250:5081/
, 直接访问打开管理界面
默认的登录凭证为用户名:[email protected]
,密码:changeme
。
点击 "添加代理服务" 新建一个反向代理,如图所示,必须写你内网要被代理的 IPV4的地址,和端口号
接着我们就需要免费申请SSL证书了,有坑的路就到了,由于我使用的是一个后缀为 .top 的域名,照网上说的很多方法去 自动申请SSL证书时会一直报错,搞了两天都没搞明白怎么回事,比如用阿里云的dns服务+ddns-go动态域名管理,申请SSL时总是通不过,后来google(做技术活,少用 "某度")了一篇,也有老外在问同样问题,大概意思是 .top的域名在使用 DNS做证书验证的时候可能会被 服务商BAN掉,OH SHIT.
行吧,我重新搞一个域名,自己手动来申请证书
随便搞台 centos7 主机,开始申请证书,用DNS的方式
centos里如果没有 certbot要先安装 yum install certbot
然后执行获取证书代码(www.admin.com 换成你自己的域名)
certbot certonly --manual --preferred-challenges dns -d www.admin.com
然后会提示你输入一个邮箱什么的,你就随便输一个吧. 后面 看到 YES NO选择的时候,通通按字母 Y
当你看到这个东西的时候,停下来,去你的域名那里作一条 TXT 的解析(注意看解析的名字会有提示的),里面的值为 那一串字母"aVus8NqEDqaAH5P24H5PZL-WfoFzeUDvyuUEHEO1Mtk",每次都不同,自己根据实际情况弄.
接着验证一下你的DNS验证记录是否生效了
yum install bind-utils #如果没有nslookup就执行这个,有了就不用执行
nslookup -q=TXT _acme-challenge.www.admin.com
解析成功后你就反回到之前的申请窗口按回车,不出意外的话(当然经常是有意外的),就能取得证书文件
他提示的 证书保存位置(是一个链接文件,相当于快捷方式)
/etc/letsencrypt/live/www.admin.com
证书保存位置(实际位置)
/etc/letsencrypt/archive/www.admin.com
接下来你去把那几个证书文件下载下来(实际位置)
你会得到这么5个文件,这5文件意思是
文件名 | 文件作用 |
---|---|
cert1.pem | 服务端证书(无用) |
chain1.pem | 浏览器需要的所有证书但不包括服务端证书,比如根证书和中间证书(无用) |
fullchain1.pem | 包括了cert.pem和chain.pem的内容(有用) |
privkey1.pem | 证书的私钥(有用) |
README | 一个说明书,(无用) |
对你有用的玩艺儿是 fullchain1.pem 和 privkey1.pem,千万不要用 cert1.pem,要不然你用电脑访问有可能是正常的,但是你用手机一看,嘿,他可能会给你报这个错
Request Failed: SSLHandshakeExceptionjava.security.cert.CertPathValidatorException:Trust anchor for certification path not found