MikroTik REST API证书签名接口如何正确传递Unnamed Parameter
MikroTik REST API 证书签名无名称参数传参方案
错误原因
RouterOS v7 版本REST API中,CLI命令里跟在操作指令后的无名称位置参数(比如/certificate sign后紧跟的待签名证书标识),不支持拼接在URL路径传递,必须通过请求体中固定的.id字段提交,缺失这个字段就会触发"At least one field specifying certificate name must be set!"的400报错。
正确调用方式
保持签名接口URL为https://example.com/rest/certificate/sign不要修改,在POST请求的JSON Body中新增.id字段,值填入待签名证书的ID或名称即可。
正确请求示例
URL: https://example.com/rest/certificate/sign Method: POST Content-Type: application/json Body: { ".id": "*14", "ca": "$CN", "name": "$USERNAME@$CN" }
补充注意事项
.id字段支持两类传值:一是创建证书时接口返回的*<数字>格式内部ID(即示例中创建接口返回的*14);二是证书的name属性值,本场景下传".id": "client-template-to-issue"可以实现完全相同的匹配效果。- 不要将ID拼接在URL路径后,该写法是RouterOS v6时期非官方第三方API的遗留逻辑,v7版本正式REST API不识别该传参方式。
- 注意
.id的键名前必须带半角点,漏写点会导致接口无法识别参数,依然返回400错误。
内容的提问来源于stack exchange,提问作者Abd Rahman Alkaff
相关产品推荐
相关产品推荐

