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 释出 v1.1.5

因应Laravel 5.5推出了,刚好php也出了php 7.0.23及php 7.1.9版了。 D-Laravel使用的fpm版本也进行更新罗...只要调整您的docker-compose所定义的版本 即可使用最新的php罗...

dlaravel

如何启动D-Laravel上的supervisor

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

dlaravel

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

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