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

ml-gradle执行mlDeployRoles忽略HTTPS配置报400错误求助

解决ml-gradle mlDeployRoles任务忽略HTTPS配置的问题

问题现象

将自托管MarkLogic实例迁移至HTTPS后,执行mlDeployRoles部署角色时返回400 The plain HTTP request was sent to HTTPS port错误,其他资源部署任务(如mlDeployDatabase)正常。已尝试配置mlManageScheme=https、mlAdminSimpleSsl=true、hubSsl=true等参数,均未生效。当前环境版本:ml-gradle 4.5.3、mlcp 11.1.0、MarkLogic Server 10.0-11、gradle 7.3.3、openjdk-17-jdk。

排查与解决方案

1. 确认全局配置的完整性

检查gradle.properties中的配置,确保所有与HTTPS相关的参数都正确设置:

mlManageScheme=https
mlAdminPort=8001 # MarkLogic默认HTTPS管理端口
mlAdminSimpleSsl=true # 测试环境可启用,跳过证书验证;生产环境建议配置信任库
# 若使用自签名证书,需指定信任库(可选)
# mlSslContextPropertiesFile=./ssl/truststore.properties

确保没有遗漏或错误的端口/协议配置,避免HTTP端口与HTTPS端口混淆。

2. 显式为mlDeployRoles任务指定SSL属性

虽然ml-gradle任务默认共享全局配置,但可尝试在build.gradle中显式为mlDeployRoles任务强制设置HTTPS参数:

tasks.named('mlDeployRoles') {
    scheme = 'https'
    simpleSsl = true
    port = project.property('mlAdminPort')
}

3. 验证MarkLogic端口配置

登录MarkLogic管理控制台,确认:

  • 管理端口(默认8001)已启用HTTPS
  • HTTP管理端口(默认8000)已禁用(避免请求被路由到错误端口)

4. 升级ml-gradle版本

ml-gradle 4.5.3可能存在SSL配置相关的已知问题,建议升级至兼容MarkLogic 10的最新稳定版(如5.x系列),新版本通常会修复此类配置继承问题。

5. 检查JVM SSL信任配置

若使用自签名证书,即使开启mlAdminSimpleSsl=true仍可能出现问题:

  • 将MarkLogic的自签名证书添加到JVM的cacerts信任库中
  • 或通过mlSslContextPropertiesFile指定自定义信任库,示例truststore.properties内容:
javax.net.ssl.trustStore=/path/to/truststore.jks
javax.net.ssl.trustStorePassword=your-password

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 05:37:42