如果你想用域名访问你在 HyperApp 里管理的服务器,并且希望用域名来访问你部署的应用,那么可以照此教程操作。下文以 hyperapp.io
为例,讲述如何生成 SSL 证书。
A 记录
指向你的 VPS。比如建一个 gce-ac.hyperapp.io
二级域名 A 记录
到 你 VPS 的 IP上 104.155.xx.xx
。CNAME
到 gce-ac.hypeapp.io
。这样的好处是如果 IP 变了只要改一下 gce-ac
的 IP 地址所有其它二级域名也就跟着变了,不用一个个改。现在你可以 ping gce-ac.hyperapp.io
就会显示它的IP,应该和你上面设置的记录一致(如果是新加的二级域名则会马上生效,如果是修改了现有的值则48小时内生效)
如果要自动生成域名的 SSL 证书则需要配合 Nginx Proxy
和 Nginx SSL Support
来进行,因为 LetsEncrypt 需要回访你的域名确认你拥有这个域名的所有权。所以在进行下面的操作前,你需要先将需要生成证书的域名解析到你的服务器上。否则无法验证就不能生成证书。
Store
安装 Nginx Proxy
Volumes
都有默认配置,你可以随意更改 SSL Certs,Config dir,HTML dir的路径,但Docker Sock
的值必须为 docker
守护进程的socket文件nginx
部署到服务器上Nginx 会自动监听其它应用里面设置的 Custom Domain
值,并自动重启服务 所以你在新部署 Ghost/WordPress/ownCloud 后以及更改了配置后不用手动重启 nginx
。
Store
安装 Nginx SSL Support
。Volumes
的路径和 nginx
的设置一样,并且在下面 Share Volumes
中选择 nginx
镜像,允许访问 nginx
的文件系统Nginx SSL Support
部署到同一台服务器上*Nginx SSL Support 会自动监听其它应用里面 SSL Support
相关设置,并自动生成证书*,生成证书的过程会需要几分钟或者十几分钟的时间,在这个过程中你访问 https 会出现 502 Bad Gateway
的错误信息,稍等片刻就好。
你可以查看Log获取更多信息,参考上图中最后一个截图。
安装完了 Nginx 下面就可以自动生成 SSL 证书了,如果你要为指定域名生成证书需要进行下面的操作。
Apache
不管你选择了哪一步,则创建应用后在出现的配置界面中,都可以在下面看到一个 显示 Nginx 和 SSL 选项
的按钮,打开后可以看到下面两部分的配置:
Custom Domain (自定义域名)
是配合 nginx 使用的,它告诉 nginx 遇到访问该域名的请求时,把请求转发(反向代理)给当前应用。
SSL Support
配合 Nginx SSL Support
使用,当填入一个域名时它会使用 letsencrypt 自动请求并生成该域名的证书。
现在,只要在服务器上安装这个应用就可以了,等安装成功后,稍等两分钟你在浏览器中打开 https://你的域名
应该就可以访问了!你也可以查看 Nginx SSL Support
的日志,里面会有过程记录。证书生成后会默认保存在 /srv/docker/certs/
目录下面(如果你没有改配置的话)。