【转】网站HTTPS使用Let’s Encrypt证书(带脚本)

有个域名在Let’s Encrypt测试的时候就申请了,邮件收到,但是没弄,汗……

突然看到有人有脚本就愉快的转载了,哈哈,方便了很多(自己不想动手……汗)

Let’s Encrypt Closed Beta Invite

期待已久的SSL证书终于可以用了!

假设已经下载了Let’s Encrypt的客户端,如果没有,可以使用以下命令:

git clone https://github.com/letsencrypt/letsencrypt.git

我的放在/app/letsencrypt

根据邮件所示的方法,我首先写了一个脚本:

#!/bin/bash

SERVER="https://acme-v01.api.letsencrypt.org/directory"  # 目前Let's Encrypt的签发服务器
DOMAINS=(wetofu.top tonychyi.wetofu.top kaka.wetofu.top)  # 需要认证的域名,用空格分隔

# 生成域名参数列表,类似"-d xxx.yourdomain.com -d xx2.youdomain.com"
for i in ${DOMAINS[*]}
do
        domarg="$domarg -d $i"
done

service nginx stop  # 认证时需要占用80端口,先停掉nginx
cd /app/letsencrypt
git pull origin master
./letsencrypt-auto --server $SERVER $domarg --renew --agree-dev-preview certonly
service nginx start

然后执行这个脚本,最后提示CONGRATULATIONS的时候,证书已经完成签发

证书会保存在/etc/letsencrypt/live/<yourdomain>/目录下面,无论申请多少证书,证书只会生成一套且在你的主域名(我的是wetofu.top)下生成,生成的证书文件可以用于你之前申请的所有域名

然后在nginx中的https服务中配置SSL证书:

server {
        listen 443;
        ssl on;
        ssl_certificate /etc/letsencrypt/live/<yourdomain>/fullchain.pem;  # 证书文件
        ssl_certificate_key /etc/letsencrypt/live/<yourdomain>/privkey.pem;  # 私钥
        ...
}

然后让nginx重新载入配置nginx -s reload

因为Let’s Encrypt的证书有效期只有90天,方便起见可以使用crontab来设置定时任务

vi /etc/crontab

加入以下内容

0 0 */60 * * root /your/path/update_cert.sh

From:https://tonychyi.wetofu.top/2015/12/01/go-with-letsencrypt/

※转载保留版权:糖果果|Sugarguo
※本文链接地址:
http://www.sugarguo.com/zhuanwangzhanhttpsshiyongletsencryptzhengshudaijiaoben/
※除非注明,糖果果|Sugarguo文章均为原创
※英雄不问来路,转载请注明出处和链接,谢谢。
※如果喜欢可以:点此订阅本站

发布者

糖果果|Sugarguo

一只欢乐的逗霸,逗比中的战斗机~学习vps,linux,python,c#,嵌入式~

发表评论

电子邮件地址不会被公开。 必填项已用*标注