目前主流的CentOS版本是6和7两个系列。有些功能在7中可以轻易实现,在6系列中做到要花费更多功夫。比如本博客的 “使用Let’s Encrypt的免费证书”“ImportError: ‘pyOpenSSL’ module missing required functionality”两篇文章均是在CentOS 7下成功。在CentOS 6中使用certbot工具会遇到OpenSSL版本太低的问题,pip方式安装编译不通过等问题。

为了不折腾Python、OpenSSL太旧等依赖的问题,最好的解决方法是直接运行CentOS 7。这时候轻量级的虚拟化方案docker就派上用场了。以获取certbot的证书为例,在docker中运行CentOS 7的步骤如下:

  1. 安装docker
    yum update -y && yum install -y docker-io
    chkconfig docker on && service docker start
  2. 拉取最新版的CentOS
    docker pull centos
  3. 运行CentOS 7容器
    docker run -it --name certbot

以上步骤后,会进入到CentOS 7中的容器中。接下来便可在容器中安装certbot和获取域名证书。

获取到证书后,退出容器,在宿主机的/var/lib/docker目录下查找容器中获取到的证书:

find /var/lib/docker -type f -name tlanyan.pp.ua

找到域名证书文件后,配置好web服务器,即可让网站通过https方式访问。

如果需要更新证书,则重新开启容器,运行更新命令即可:

docker start -i certbot
certbot renew