一、介绍
SSH - SSH 类型的部署节点用于实现将OHTTPS中申请的证书通过SSH的方式推送至用户Linux服务器中,原理是SSH执行远程命令,例如
ssh root@ohttps.com "nginx -s reload"
如果配置的命令执行失败,请先确认在命令行中直接使用ssh方式远程执行是否可正常运行。
二、使用方法
使用 SSH - SSH 类型的部署节点,首先要在OHTTPS中创建SSH类型部署节点,创建该类型部署节点时,需要提供SSH的远程登录用户名、主机地址、端口、密码或密钥,以及证书文件创建或更新前后执行的前置命令、后置命令。当进行证书自动部署或者手动部署时,OHTTPS会通过SSH的方式按顺序远程执行前置命令、证书文件创建或更新命令、后置命令。
前置命令(需用户配置,允许配置多行): 用于在证书文件创建或更新命令执行前,执行一些用户自定义命令,例如切换当前所在文件夹,请确保登录用户拥有执行相应命令的权限
```bash
# 此处仅作为示例
cd /etc/nginx/ohttps.com
mkdir -p certificates
cd ./certificates
```证书文件创建或更新命令(无需配置,系统自动执行): 用于在当前文件夹下创建一个证书文件夹,文件夹的名称为证书ID,文件夹内有两个文件:私钥文件cert.key(PEM格式)、证书文件fullchain.cer(PEM格式),当证书文件夹或证书文件已经存在时,不会进行重复创建,只会对证书内容进行更新
```bash
# 此处仅展示该命令基本逻辑
mkdir -p ./${certificateName}
echo "${certificateCertKey}" > ./${certificateName}/cert.key
echo "${certificateFullchainCerts}" > ./${certificateName}/fullchain.cer
```后置命令(需用户配置,允许配置多行): 用于在证书文件创建或更新命令执行后,执行一些用户自定义命令,例如重启nginx,请确保登录用户拥有执行相应命令的权限
```bash
# 此处仅作为示例
nginx -s reload
```
三、其它
建议新建专门用于证书部署的用户
# 新建cert用户
useradd cert
# 设置cert用户登录密码
passwd cert允许普通用户可以执行需要root权限的命令
# 此处以nginx命令为例
# 查看命令所在文件夹
# 此处假设nginx命令的文件地址为:/usr/sbin/nginx
which nginx
# 进入nginx所在命令文件夹:/usr/sbin
cd /usr/sbin
# 为普通用户添加nginx命令执行权限
chmod u+s nginx
# 某些linux系统中调用时需要指定目录运行
/usr/sbin/nginx -s reload