by Devin Yang

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

前言

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

需要登入才可留言!

类似文章


nginx,dlaravel

如何设置nginx上的HTTPS,取得Qualys的SSL A+评分

本文介绍如何调整nginx的ssl设置,让网站取得SSL报告,取得A+的评比。 这里我使用的为 letsencrypt 免费证书。 只要您使用D-Laravel默认的Docker官方nginx新版image,应该都可以达到跟我一样的效果。 可透过下方检测您的主机SSL设置。 https://www.ssllabs.com/ssltest/index.html

dlaravel

使用D-Laravel build自己专用的php fpm image。

D-Laravel已提供了Build好的php image,如果需要自己调整及Build自己专用的Image相当简单。 一、首先在D-Laravel的录中,进入dockerfiles/fpm,选择您要Build的PHP版本,例如7.2。 命令如下...

dlaravel

安全的更新D-Laravel

如何升级目前的D-Laravel。 如果您目前使用环境上很顺,没碰到问题,可以不用更新。 如果您想采用最新的版本,及bug修正等,请仔细阅读本文, 为了确保顺利升级,以下是建议的D-Laravel升级方式。