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

D-Laravel上的.env.example档说明

本文说明关於D-Laravel上的.env设置 MYSQL_ROOT_PASSWORD=secret LARAVEL_INSTALLER='container' DOCKER_SERVICES='docker-compose.yml service/redis.yml'

php,docker,dlaravel

我创建的phpenv容器环境简单介绍

没时间拍介绍影片,我就来随便抓些画面介绍我使用的容器环境deviny/phpenv。https://github.com/DevinY/phpenvphpenv算是我之前D-Laravel开源项目的进化版本,概念上延用了很多Dlaravel的操作方式。容器的更新上偏向使用者自行控制去Build自己的image,所以我不太会去更动版号了,其实D-Laravel的php版号,好像我也很久没动啦:p 

dlaravel

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

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