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

自定义JHipster蓝图无法连接含内部CA的内部注册表求助

JHipster蓝图Marketplace证书错误解决方案

问题场景

开发JHipster蓝图时,执行命令jhipster --blueprints my-blueprint,选择安装JHipster Marketplace的其他生成器(输入y)后,触发报错:

WARNING! Unable to contact server to fetch additional modules: self signed certificate in certificate chain

已通过NODE_EXTRA_CA_CERTS环境变量指定内部证书,甚至直接在命令前显式声明该变量(如NODE_EXTRA_CA_CERTS=path/to/cert.cer jhipster --blueprints my-blueprint),但问题未解决。

可行解决方法

  • 转换证书为PEM格式:NODE_EXTRA_CA_CERTS仅支持PEM格式证书,如果你的证书是CER/CRT等DER格式,先用OpenSSL转换:

    openssl x509 -inform der -in path/to/cert.cer -out path/to/cert.pem
    

    之后将环境变量指向转换后的PEM文件。

  • 配置npm证书信任:JHipster底层依赖npm处理模块,需同步配置npm的证书:

    # 配置信任的CA证书
    npm config set cafile "path/to/cert.pem"
    # 若仍有问题,临时关闭严格SSL校验(仅测试用,生产环境不建议)
    npm config set strict-ssl false
    
  • 修改JHipster请求的CA配置:如果上述方法无效,可能是JHipster的HTTP客户端未读取系统证书。可找到JHipster核心中Marketplace相关代码(通常在generator-jhipster/lib/cli/marketplace.js),在发起HTTPS请求时显式指定CA:

    const https = require('https');
    const fs = require('fs');
    const caCert = fs.readFileSync('path/to/cert.pem');
    
    // 修改原请求配置,添加ca选项
    const requestOptions = {
      hostname: 'marketplace.jhipster.tech',
      path: '/api/modules',
      ca: caCert
    };
    
    https.get(requestOptions, (res) => {
      // 原有响应处理逻辑
    });
    
  • 配置网络代理(如有需要):若处于内部代理网络环境,除证书外还需配置代理:

    # npm代理配置
    npm config set proxy http://your-proxy-address:port
    npm config set https-proxy http://your-proxy-address:port
    # 系统环境变量代理
    export HTTP_PROXY=http://your-proxy-address:port
    export HTTPS_PROXY=http://your-proxy-address:port
    

    确保代理服务器已信任你的内部证书。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 09:10:22