我是
靠谱客的博主
清新身影,最近开发中收集的这篇文章主要介绍
如何在 Apache 上部署 Let's Encrypt 证书 &&自动续期脚本,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
姊妹篇: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证书
首先我们要安装git
- apt-get update
- apt-get -y install git
复制代码
然后,检出Let's Encrypt的客户端源码
- git clone https://github.com/letsencrypt/letsencrypt
复制代码
这样,我们就成功的下载了Let's Encrypt的客户端
进入目录
使用 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
复制代码
将这个脚本加上可执行权限,再配置每个月或每两个月自动执行就可以保证你的证书不过期了! |
最后
以上就是清新身影为你收集整理的如何在 Apache 上部署 Let's Encrypt 证书 &&自动续期脚本的全部内容,希望文章能够帮你解决如何在 Apache 上部署 Let's Encrypt 证书 &&自动续期脚本所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复