前言
起因是因为 Let's Encrypt
的管理证书协议 ACMEv1
要在今年废弃掉,导致一台老服务器上的 https
失效。Let's Encrypt
官方推荐的方法是更新到支持 ACMEv2
的 certbot
版本。服务器是Ubuntu 14.04,支持ACMEv2
的客户端需要更新到Ubuntu 16.04 ,因为更新系统的不确定性,所以想到了使用 Docker 去解决这个问题。
项目结构大概是这样
Nginx 做 Node Server 的反向代理,Certbot 用来获取并更新 Nginx 的 ssl 证书。
我们的目的是用容器将三个服务整合在一起。
构建 Node Server 的镜像
首先是要将 Node Server 进行Docker 化,直接在项目中加入 Dockerfile。
FROM node:6.17.1
ENV NODE_ENV=production
WORKDIR /server
COPY ["package.json", "package-lock.json*", "yarn.lock", "npm-shrinkwrap.json*", "./"]
RUN yarn --silent --production
COPY . .
EXPOSE 3000
RUN yarn global add gulp
CMD ["yarn&#