现在 ssl 的证书无处不在,无论是你建站也好,还是某些特殊用途也罢,你不会生成 SSL 证书估计都用不好互联网。免费的 Letsencrypt 应该是最容易获得的证书了。只是生成 ssl 证书的过程砍死复杂,工具众多,比较常用的还是 certbot ,但是 certbot 要装一堆东西,有洁癖的估计会很烦,后来我发现,其实用 docker 来生成证书非常简单明了。
用 CloudFlare 的原因在于, CloudFlare 提供了 API ,可以代码自动验证 dns 归属来生成证书,比起通过网站来验证简单的多,而且 CloudFlare 还有很多神奇的功能。所以如果你有域名要生成证书,建议先扔给 CloudFlare 解析。
今天就教大家配合 CloudFlare 来生成 letsencrypt 的 SSL 证书的方法。
如果有不懂的也可以留言。我会尽量回复。
第一步:创建 CloudFlare 的 API 验证文件
mkdir -p /home/letsencrypt/ vi /home/letsencrypt/cloudflare.ini
输入你的 cloudflare 账号邮箱和 API KEY
dns_cloudflare_email = [email protected] dns_cloudflare_api_key = e89af204ab0e06def9c0846c202d1dec40e80
第二步:运行 docker 来生成证书
如果你没有安装过 docker ,可以使用命令来安装: curl https://get.docker.com | bash
如果安装过 docker ,则执行以下命令,启动 docker 来生成证书
docker run -it --rm --name certbot \ -v "/etc/letsencrypt:/etc/letsencrypt" \ -v "/var/lib/letsencrypt:/var/lib/letsencrypt" \ -v "/home/letsencrypt:/.secrets" \ certbot/dns-cloudflare certonly \ --dns-cloudflare-credentials /.secrets/cloudflare.ini \ --dns-cloudflare-propagation-seconds 60 \ --server https://acme-v02.api.letsencrypt.org/directory \ -d *.sina.com -d www.sohu.com
要修改最后一行那个 -d 后面的网站就可以了,多个域名可以添加多个 -d 域名
安装过程的选择
这里选 1 :
这里填写你的 email 地址:
是否接收新闻 , 随意填 Y 或者 N :
这里填 A :
然后等 60 秒,如果出现” Congratulations ”就说明生成成功了。
生成的证书位置
生成的证书在: /etc/letsencrypt/live/ 你的域名文件夹
下
其中:
fullchain.pem 包括了 cert.pem 和 chain.pem 的内容,如果其他教程里需要有个文件是 .cert
后缀的,那就用这个文件就对了
privkey.pem 就是私钥,如果其他教程里面使用的文件是 .key
后缀的,那就是用这个文件。
acme.sh 舒服很多