通过Plesk XML API激活域上的SSL证书

til*_*llz 5 xml-rpc plesk zend-xmlrpc

我目前正在使用Plesk-Panel插件来自动获取和安装SSL证书。借助Parallels提供的功能非常强大的XML API,我可以将证书安装到Plesks SSL Cert-Pool。

也可以为特定页面打开SSL,但是我绝对找不到激活特定证书的方法(当然,该证书已经添加到了证书池中)。

当然,最简单的答案是“ API不支持它”,但是使用以下命令通过命令行实用工具很容易做到这一点:

/opt/psa/bin/subscription -u example.com -certificate-name my_cool_ssl_cert

对于手册

命令行界面(CLI)具有与API RPC相同的功能

这是相对明显的,因为它们在其他地方都具有相同的功能。

那我想念什么呢?有人做过吗?

如果没有通过XML-API激活特定对象的可能,那么许多调用将完全是毫无意义的(可以安装CERT,激活ssl但不能激活它吗?真的不能相信这一点。)

非常感谢任何将我指向正确方向的回答/意见,在此先感谢!

Ole*_*kin 3

这里是请求示例:

<packet>
    <webspace>
        <set>
            <filter>
                <id>34</id>
            </filter>
            <values>
                <hosting>
                    <vrt_hst>

                        <property>

                            <name>certificate_name</name>

                            <value>some_existed_certificate_name</value>

                        </property>

                    </vrt_hst>
                </hosting>
            </values>
        </set>  
    </webspace>
</packet>
Run Code Online (Sandbox Code Playgroud)

主要规则是,如果在 CLI 中它是“订阅”设置,那么我们进入“管理订阅(网络空间)”->“设置订阅参数”,并且我们始终必须检查“请求数据包结构”。从数据包结构来看,我们猜测我们的 SSL 设置应该位于托管部分,并且有一个链接,因此我们将

http://download1.parallels.com/Plesk/PP12/12.0/Doc/en-US/online/plesk-api-rpc/39967.htm
Run Code Online (Sandbox Code Playgroud)

但我们看到这部分 API 没有完整记录,有一些“属性”,但显然不是全部。并且有一个注释

注意:要管理托管设置,您应该首先检索包含设置名称的托管设置描述符。有关详细信息,请参阅检索托管设置描述符 部分。

通过这个新链接,我们可以找到如何检索我们找到“certificate_name”的托管属性的所有名称的列表。

对于插件域或子域,您可以使用以下查询:

<packet>
    <site>
        <set>
            <filter>
                <id>3</id>
            </filter>
            <values>
                <hosting>
                    <vrt_hst>

                        <property>

                            <name>certificate_name</name>

                            <value>some_existed_certificate_name</value>

                        </property>

                    </vrt_hst>
                </hosting>
            </values>
        </set>  
    </site>
</packet>
Run Code Online (Sandbox Code Playgroud)