by Devin Yang

建立于: 7年前 ( 更新: 7年前 )

前言

let's encrypt提供免费的证书真的很棒,不过,三个月要更新一次证书是不是有点麻烦,
本文介绍,如何透过getssl,生成多域名的SAN证书设置,放入调度自动进行证书更新。
非常简单哦,六个步骤即可搞定。

注:在下方的过程中,我使用非root的权限进行设置,如果你需要使用root才能重启您的nginx主机,
请自行调整您安装的使用者,或者是web server的重启命令。

步骤

1. 透过git下载gessl,并且存成scripts。
git clone https://github.com/srvrco/getssl scripts

2.第一次使用,运行如下命令
cd scripts
./getssl -c ccc.tc

请将上方哉名ccc.tc换成您自己的域名
就会在您的家目录,创建.getssl的数据夹及ccc.tc的目录了
creating main config file /home/devin_yang/.getssl/getssl.cfg
Making domain directory - /home/devin_yang/.getssl/ccc.tc
creating domain config file in /home/devin_yang/.getssl/ccc.tc/getssl.cfg

3.用vim编辑设置,简单拷贝第二步显示的路径即可。
vim /home/devin_yang/.getssl/ccc.tc/getssl.cfg

4.以下的getssl.cfg设置仅供参考,请依您自己实际的主机目录及证书数据夹,进行调整。
#选取发送证书的主机
CA="https://acme-v01.api.letsencrypt.org"
#额外的域名
SANS="www.ccc.tc, devin.ccc.tc, mail.ccc.tc"

#设置ACME路径,因为我是安装在dlaravel的环境,ccc为我的project目录。
#记得要在public下,创建该目录.well-known/acme-challenge
ACL=('/home/devin_yang/dlaravel/sites/ccc/public/.well-known/acme-challenge')
USE_SINGLE_ACL="true"

#设置证书路径
CA_CERT_LOCATION="/home/devin_yang/dlaravel/etc/ssl/cert.crt"
DOMAIN_CHAIN_LOCATION="/home/devin_yang/dlaravel/etc/ssl/fullchain.pem"
DOMAIN_PEM_LOCATION="/home/devin_yang/dlaravel/etc/ssl/privkey.pem"
#D-Laravel的nginx重载命令
RELOAD_CMD="bash -c 'cd /home/devin_yang/dlaravel; ./console reload'"

#设置主机类型
SERVER_TYPE="https"
关於RELOAD_CMD,如果您并非使用D-Laravel(docker-compose环境),
例如: nginx,重载方式在nginx应该是nginx -s reload,或在旧版CentOS或RedHat的Apache上,应该可以用service httpd graceful
关於主机部份的相关设置及说明就不在说明了,本文我假定读者已设置好了let's encrypt的证书在主机上,只是要完成自动更新功能。

5.手动更新证书,并进行nginx主机重启
cd ~/scripts
 ./getssl ccc.tc

6.使用crontab放入调度每明检查,自动进行更新
15 5 * * * /home/devin_yang/scripts/getssl -u -a -q

补充:如果需强制更新证书,我们可以用-f参数,例如我的SAN又补了新的域名
getssl -f ccc.tc

关於nginx上的证书设置方式,可以参考我这篇:
如何设置nginx上的HTTPS,取得Qualys的SSL A+评分
 

Tags: dlaravel

Devin Yang

文章内容无法一一说明,如果您有什么不了解处,欢印提问哦:)

No Comment

Post your comment

需要登入才可留言!

类似文章


dlaravel

使用docker in docker创建D-Laravel测试环境。

D-Laravel是一个极易使用并且极有弹性的Laravel开发环境,只要您是Mac的使用者,就算不懂Docker也可以透过他来创建Laravel的项目,进行开发,由於最近添加.env的功能新功能时,急者push,却没有完整测试,搞出了一堆新的Bug,所以,这次新建了一个新的dlaravel_test,bash的测试工具,透过doceker in docker的方式来跑测试。确保D-Laravel的每一次释出都能是一个稳定的版本。

dlaravel

如何在host直接运行容器内,不同Project的php artisan.

本篇为D-Laravel的运用教程,如何在主机端直接运行container内的php artisan. 自定义别名后,就能直接在host端的project数据夹内,直接运行contianer内的php artisan了。 alias a="../../artisan.sh"

dlaravel

如何启动D-Laravel上的supervisor

由於queue workers是一个长期运行的进程,所以我们会需要一个进程管理员supervisor来监控Linux系统上的process是否持续运作,例如:当queue:work运作失败时,可以自动重启queue:work process。很幸运的D-Laravel已内建supervisor罗,所以不需要再自行安装即可使用。 本文简单的介绍,我们如何来启动container内的supervisor。