Toggle navigation
首页
技术
骑行
羽毛球
资讯
联络我
登录
让站点使用https安全加密访问之自动更新证书
2017-08-30
Security
之前写了一篇文章介绍如何在线申请ssl证书,见[让站点使用https安全加密访问](/Coding/Details/enable-https-for-web-site),这种方式的特点是简单,按照向导就可以生成证书,但是证书过期需要再次重新申请及更新证书。 本文介绍如何用getssl工具申请证书及自动更新证书。 # 安装GetSSL 打开bash,执行: curl --silent https://raw.githubusercontent.com/srvrco/getssl/master/getssl > getssl ; chmod 700 getssl 这条命名下载脚本并添加脚本的执行权限。 # 初始化配置文件 对于要申请证书的domain,使用 -c 命令创建一个默认的配置文件: ./getssl -c www.supperxin.com 这条指令会生成如下内容: ``` ~/.getssl ~/.getssl/getssl.cfg ~/.getssl/www.supperxin.com ~/.getssl/www.supperxin.com/getssl.cfg ``` ~/.getssl/getssl.cfg文件为默认配置,~/.getssl/www.supperxin.com/getssl.cfg文件为domain的配置,在domain的配置中没有声明的内容,会读取默认配置。 # 配置domain的配置文件 ~/.getssl/www.supperxin.com/getssl.cfg为domain的配置,主要修改如下内容: ## 配置证书服务器地址 取消注释,配置证书服务器为正式服务器。 CA="https://acme-v01.api.letsencrypt.org" ## 配置多个Domain 如果有多个domain需要申请,则配置SANS字段,用逗号隔开,比如SANS="cdn.supperxin.com" ## 配置所有权认证 配置ACL字段,需要将其配置到网站路径下,以便getssl服务可以通过此路径验证网站所有权。 需要注意的是,这个字段需要对应SANS字段,第一行为主domain(www.supperxin.com)的认证位置,其后每一行为SANS中配置的位置。本文需要认证 www.supperxin.com, cdn.supperxin.com, 所以需要配置两行: ``` ACL=('/var/www/www.supperxin.com/web/.well-known/acme-challenge' '/var/www/www.supperxin.com/web/.well-known/acme-challenge') ``` 其中 /var/www/www.supperxin.com/web/ 为网站的根目录。 # 配置Nginx ACL生成的内容需要配置Nginx,以便可以从Web访问到,在Nginx的配置文件中添加: ``` location /.well-known/acme-challenge/ { root /var/www/www.supperxin.com/web/; add_header Content-Type text/plain; } ``` 配置好之后,运行 service nginx reload 然后可以在/var/www/www.supperxin.com/web/.well-known/acme-challenge/目录下添加一个测试文件试试看从Web是否可以直接访问到。 # 生成证书 都配置好以后,只需要执行: ./getssl www.supperxin.com 就会在~/.getssl/www.supperxin.com/目录下生成私钥和证书。 # 配置corn自动更新证书 getssl -a可以直接更新所有的证书,利用linux的corntab可以实现每个月更新一次: 23 5 1 * * /path/to/getssl -u -a -q # 参考: * [ACME Client Implementations](https://letsencrypt.org/docs/client-options/) * [GetSSL](https://github.com/srvrco/getssl)
×
本文为博主原创,如需转载,请注明出处:
http://www.supperxin.com
返回博客列表