分类
Linux

配置免费ssl证书Lets Encrypt并自动更新

Lets Encrypt证书配置快捷,无需登录网站验证域名邮箱等操作,有效期为3月(中小网站域名频率过快,为了保证ssl安全),自动更新十分方便,强烈推荐!中小网站福音.

方法步骤如下:

1.创建一个目录,获取自动配置脚本

mkdir /root/letsencrypt &cd /root/letsencrypt
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.conf 
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.sh 
chmod +x letsencrypt.sh

2.编辑letsencrypt.conf 替换里面的域名为自己的域名,DOMAIN_DIR为网站所在目录绝对地址,用于生成.well-known目录内的验证文件,必须正确配置

# only modify the values, key files will be generated automaticly.
ACCOUNT_KEY=”letsencrypt-account.key”
DOMAIN_KEY=”ssl.ppkj.net.key”
DOMAIN_DIR=”/wwwroot/ppkj.net/
DOMAINS=”DNS:ssl.ppkj.net,DNS:ssl2.ppkj.net
#ECC=TRUE
#LIGHTTPD=TRUE

3.创建目录.well-known,并添加nginx位置,或者允许直接访问,此处为非ssl加密的普通http访问,必须保证能够正常访问,否则无法生成证书

server { 
 ...
 location /.well-known/ {
 alias /wwwroot/ppkj.net/.well-known/;
 }
 ...
}

4.配置ssl访问,配置后重启nginx:   service nginx restart

server { 
 listen 443 ;
 ssl on;
 ssl_certificate /root/lets-encrypt/ssl.chained.crt;#chained 为合并后的证书
 ssl_certificate_key /root/lets-encrypt/ssl.ppkj.net.key;
... 
}

5.生成证书,注意必须是bash环境,freebsd需要先安装bash及python,并且不要用sh letsencrypt.sh方式执行(默认csh)

./letsencrypt.sh ./letsencrypt.conf

运行后会提示生成成功,如果.well-known里面的文件无法正常访问则会失败.检查后重新运行生成即可.

6.每月自动更新证书的脚本,也可以设置为2个月运行一次

0 0 1 * * /root/letsencrypt/letsencrypt.sh /root/letsencrypt/letsencrypt.conf >> /var/log/lets-encrypt.log 2>&1

 

如果一直创建失败 尝试修改dns为阿里云dns

/etc/resolve.conf

nameserver 100.100.2.136
nameserver 100.100.2.138

发表评论

电子邮件地址不会被公开。