跳到主要内容

一、介绍

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