Linux服务器站群如何批量申请SSL证书
1、使用xshell工具连接服务器,可以创建一个存放SSL证书相关文件的目录,我习惯性创建 /www/ssl 目录,用于存放SSL相关的命令文件;
2、执行 acme.sh 的安装命令,这个是用于批量申请和更新SSL证书的工具,安装命令的格式如下:
curl https://get.acme.sh | sh -s [email protected]

3、设置命令别名:
alias acme.sh=~/.acme.sh/acme.sh
执行命令重载的命令:
source ~/.bashrc

4、设置acme自动更新
acme.sh --upgrade --auto-upgrade

5、设置SSL证书的CA服务器
acme.sh --set-default-ca --server letsencrypt

创建服务器证书保存的主目录,宝塔面板、或者aapanel面板 使用命令
mkdir /www/server/panel/vhost/cert
6、设置域名DNS管理平台的API,我们做国外的seo, 一般是使用CloudFlare平台做域名解析管理,这个平台的api设置格式如下:
export CF_Key="76300d91f742292b0e4bb400f679888888888"
export CF_Email="[email protected]"

保存的dns api账户信息的位置:
~/.acme.sh/account.conf
7、执行申请SSL证书的命令,格式如下:
如果是做wordpress这种单站, 我们就申请 带www的域名和不带www的域名,格式如下:
acme.sh --issue --dns dns_cf -d seo.bj -d www.seo.bj --keylength ec-256
如果是做小旋风或者其他泛站,我们就申请 不带www的域名以及带星号的域名,格式如下:
acme.sh --issue --dns dns_cf -d seo.bj -d *.seo.bj --keylength ec-256
如果证书到期要更新,更新SSL证书命令的格式如下:
acme.sh --renew -d seo.bj --force --ecc
对于站群服务器,我们可以使用命令文件批量执行:
先使用vi命令,创建一个sh后缀的文件
vi ssl2.sh

然后在打开的窗口,先输入字母i 进入编辑模式,然后将批量申请证书的命令粘贴到文件里面

然后按ESC退出编辑模式,输入 :wq 保存并退出
然后输入执行批量申请 证书的命令:
sh ssl2.sh
如下图:

这样就在批量申请证书;
8、当批量申请证书的命令执行完成之后,我们就要批量安装证书了,批量安装证书之前,先批量创建存放证书文件的目录,命令格式如下 :
mkdir /www/server/panel/vhost/cert/k8.quest
mkdir /www/server/panel/vhost/cert/k8vip.link
mkdir /www/server/panel/vhost/cert/k8games.quest
需要创建整台服务器上的域名证书文件夹,需要创建的比较多,可以按照上一步的操作,使用vi命令创建一个sh后缀的命令文件,可以批量创建全部站点的 证书目录:
先执行:
vi ssl1.sh
创建 ssl1.sh 文件之后, 输入字母 i 进入编辑模式,然后将批量创建证书目录的命令全部粘贴到这个文件里面;按ESC退出编辑模式,然后输入 :wq 保存并退出。再执行批量创建证书目录的命令:
sh ssl1.sh
存放证书的目录批量创建完成之后,我们就可以批量安装证书的,安装证书的命令格式如下:
acme.sh --install-cert -d seo.bj --ecc \
--key-file /www/server/panel/vhost/cert/seo.bj/privkey.pem \
--fullchain-file /www/server/panel/vhost/cert/seo.bj/fullchain.pem \
--reloadcmd "service nginx reload"
每个域名证书的安装命令都有4行,我们可以在表格里面使用公式批量写好,换行的地方可以使用指定字符代替,然后在notepad++里面批量替换成换行:
/root/.acme.sh/acme.sh --install-cert -d seo.bj --ecc \AAABBB--key-file /www/server/panel/vhost/cert/seo.bj/privkey.pem \AAABBB--fullchain-file /www/server/panel/vhost/cert/seo.bj/fullchain.pem \AAABBB--reloadcmd "service nginx reload"
这个是我使用表格写的一个公式,我使用AAABBB做换行的连接符号,全部写好命令之后 ,一起复制Notepad++里面,然后将 AAABBB批量替换为 \n 换行就可以了
然后我们去xShell里面创建一个sh命令文件
vi ssl3.sh
然后将上面写好的批量安装SSL证书的命令粘贴到这个文件里面,然后使用命令执行这个文件就可以了
sh ssl3.sh
当所有命令执行完成之后,需要去宝塔面板,手动保存一下证书,并启用强制https



评论