You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用FortiWeb v2.0 API上传SSL证书及私钥报错,求解决方案

解决FortiWeb 7.0.6 SSL证书上传API报错-7721的方案

1. 正确处理PEM内容的换行转义

JSON格式要求字符串中的换行符必须转义为\n,直接移除换行或保留原始换行都会导致解析异常。读取本地证书文件时按以下方式处理:

# 读取证书和私钥文件并转义换行符
with open('cert.pem', 'r') as f:
    cert_content = f.read().replace('\n', '\\n')

with open('key.pem', 'r') as f:
    key_content = f.read().replace('\n', '\\n')

data = {
    "data": {
        "name": "test_cert",
        "type": "server",  # 修正type字段,服务器证书对应值为"server"
        "comment": "",
        "is-hsm": "no",
        "certificate": cert_content,
        "private-key": key_content,
        "passwd": ""
        # 移除status、flag字段,由系统自动生成
    }
}

2. 使用import_certificate端点并采用表单提交

FortiWeb的证书导入API通常要求multipart/form-data格式而非JSON,手动上传的端点是正确的,但需要调整请求方式:

import requests

url = "https://<IP-ADDRESS>:<PORT>/api/v2.0/system/certificate.local.import_certificate"
headers = {"Authorization": authToken}

# 构造表单参数
form_data = {
    "name": "test_cert",
    "type": "server",
    "is-hsm": "no"
}

# 附加证书和私钥文件
files = {
    "certificate": open('cert.pem', 'rb'),
    "private-key": open('key.pem', 'rb')
}

response = requests.post(url, headers=headers, data=form_data, files=files, verify=False)
print(response.json())

3. 验证证书与私钥的兼容性

  • 检查私钥格式:确保私钥是PKCS#8格式(-----BEGIN PRIVATE KEY-----),如果是PKCS#1格式(-----BEGIN RSA PRIVATE KEY-----),用以下命令转换:
    openssl pkcs8 -topk8 -inform PEM -in rsa_key.pem -out pkcs8_key.pem -nocrypt
    
  • 验证证书私钥匹配:执行以下命令,两个输出的MD5值必须一致:
    openssl x509 -noout -modulus -in cert.pem | openssl md5
    openssl rsa -noout -modulus -in key.pem | openssl md5
    

4. 检查API参数的正确性

  • 移除status、flag、partition-number等非必填字段,手动指定可能触发系统校验冲突
  • 确认type字段值:根据场景选择server(服务器证书)、client(客户端证书)或ca(CA证书)

5. 开启API调试日志排查

登录FortiWeb控制台,开启API调试日志定位具体问题:

  1. 进入System > Maintenance > Debug Log
  2. 启用API Debug并设置日志级别为Debug
  3. 重新执行上传请求,查看日志中的详细错误信息

内容的提问来源于stack exchange,提问作者Nick01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 05:05:26