如何在 Apache 上部署 Let's Encrypt 证书 &&自动续期脚本
2017-11-28 00:22
627 查看
姊妹篇:http://bbs.qcloud.com/thread-12059-1-1.html Linux基金会宣布它将托管Let's Encrypt项目和互联网安全研究组(ISRG)。Let’s Encrypt CA项目由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,向网站自动签发和管理免费证书,加速将Web从HTTP过渡到HTTPS。ISRG则是开发Let’s Encrypt CA的非营利组织。 今天我来教大家在Nginx上部署Let's Encrypt证书 下载Let's Encrypt客户端 首先我们要安装git apt-get update apt-get -y install git 复制代码 然后,检出Let's Encrypt的客户端源码 git clone https://github.com/letsencrypt/letsencrypt 复制代码 这样,我们就成功的下载了Let's Encrypt的客户端 签发证书 进入目录 cd letsencrypt 复制代码 使用 Let's Encrypt的Apache插件生成证书即可 ./letsencrypt-auto --apache -d example.com 复制代码 如果只签一个域名,按照上面的命令就可以了 他会自动安装插件,然后你需要输入邮箱来用于证书的找回。同时还会要求你选择是否同时开启Http和https和是否开启强制https。 可以参照http://bbs.qcloud.com/thread-12059-1-1.html 如果是多个域名,就用下面的命令生成 ./letsencrypt-auto --apache -d example.com -d www.example.com 复制代码 #!/bin/bash #================================================================ # Let's Encrypt renewal script for Apache on Ubuntu/Debian # @author Erika Heidi<erika@do.co> # Usage: ./le-renew.sh [base-domain-name] #================================================================ domain=$1 le_path='/opt/letsencrypt' le_conf='/etc/letsencrypt' exp_limit=30; get_domain_list(){ certdomain=$1 config_file="$le_conf/renewal/$certdomain.conf" if [ ! -f $config_file ] ; then echo "[ERROR] The config file for the certificate $certdomain was not found." exit 1; fi domains=$(grep --only-matching --perl-regex "(?<=domains \= ).*" "${config_file}") last_char=$(echo "${domains}" | awk '{print substr($0,length,1)}') if [ "${last_char}" = "," ]; then domains=$(echo "${domains}" |awk '{print substr($0, 1, length-1)}') fi echo $domains; } if [ -z "$domain" ] ; then echo "[ERROR] you must provide the domain name for the certificate renewal." exit 1; fi cert_file="/etc/letsencrypt/live/$domain/fullchain.pem" if [ ! -f $cert_file ]; then echo "[ERROR] certificate file not found for domain $domain." exit 1; fi exp=$(date -d "`openssl x509 -in $cert_file -text -noout|grep "Not After"|cut -c 25-`" +%s) datenow=$(date -d "now" +%s) days_exp=$(echo \( $exp - $datenow \) / 86400 |bc) echo "Checking expiration date for $domain..." if [ "$days_exp" -gt "$exp_limit" ] ; then echo "The certificate is up to date, no need for renewal ($days_exp days left)." exit 0; else echo "The certificate for $domain is about to expire soon. Starting renewal request..." domain_list=$( get_domain_list $domain ) "$le_path"/letsencrypt-auto certonly --apache --renew-by-default --domains "${domain_list}" echo "Restarting Apache..." /usr/sbin/service apache2 reload echo "Renewal process finished for domain $domain" exit 0; fi 复制代码 将这个脚本加上可执行权限,再配置每个月或每两个月自动执行就可以保证你的证书不过期了! |
相关文章推荐
- [转]部署Let’s Encrypt免费SSL证书&&自动续期
- 部署Let’s Encrypt免费SSL证书&&自动续期
- 如何通过 DNS 验证方式获取Let’s Encrypt 证书的快速脚本
- 使用Go和Let's Encrypt证书部署HTTPS
- 部署 使用 acme.sh 给 Nginx 安装 Let’ s Encrypt 提供的免费 SSL 证书
- python 文件自动配置&部署脚本
- OneinStack自动部署Let's Encrypt证书
- 在Ubuntu16.04系统为Apache服务器安装Let's Encrypt证书
- 如何一键部署项目&&代码自动更新
- certbot自动在ubuntu16.04的nginx上部署let's encrypt免费ssl证书
- 在 CentOS 6 和 Nginx 中部署 Let's Encrypt 的 SSL 证书
- IIS - 自动申请、部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议)
- 如何为Ubuntu 14.04上的多Apache虚拟主机环境设置Let's Crypt安全证书
- linux中获取/更新Let’s encrypt 证书的脚本
- 使用 Cerbot 部署 Let's Encrypt免费证书 简单 升级 http 到 https 申请单域名ssl证书
- Windows服务器上完成Let’s Encrypt免费SSL证书的自动化更新部署(apache)
- Let’s Encrypt 免费SSL证书自动续期的方法
- 在linux 如何写一个自动用ssh登录重启Apache的脚本
- Shell脚本自动部署(编译)LAMP平台
- 如何让Apache能自动运行index.php?