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

如何为无公网IP私有子网中的过期GitHub Enterprise Server续期TLS证书

无公网IP的GitHub Enterprise Server TLS证书续期方案(AWS私有子网场景)

因为你的GHES实例部署在私有子网且无公网IP,ACME服务器无法通过公网解析到它的A/AAAA记录,所以ghe-ssl-acme的HTTP-01验证会失败。以下是可行的解决方法:

方法一:使用DNS-01验证生成可信证书(推荐长期使用)

DNS-01验证不需要公网访问实例,仅需修改域名的DNS记录完成验证:

  1. 在有公网访问的机器(本地电脑或AWS公网EC2)上安装Certbot或其他支持DNS-01的ACME客户端
  2. 执行证书申请命令:
    certbot certonly --manual --preferred-challenges dns -d your-ghes-domain.com
    
  3. 按照提示在域名的DNS服务商处添加指定的TXT记录,等待ACME服务器验证完成后,会生成fullchain.pem(证书链)和privkey.pem(私钥)文件
  4. 通过堡垒机/VPN等方式将证书文件上传到GHES实例的/home/admin/目录
  5. 在GHES上安装证书并生效:
    sudo -u admin ghe-ssl-certificate-install /home/admin/fullchain.pem /home/admin/privkey.pem
    sudo ghe-config-apply
    

方法二:搭建内部ACME服务器(适合企业内部环境)

如果你的环境有内部CA体系,可以自建内部ACME服务器(如Step CA),让GHES通过内部网络完成证书续期:

  1. 部署内部ACME服务器,确保GHES实例能通过私有网络访问该服务器
  2. 配置GHES指向内部ACME端点:
    sudo ghe-config ssl.acme.server https://your-internal-acme-server-url
    
  3. 重新执行ACME续期命令:
    sudo -u admin /usr/local/bin/ghe-ssl-acme -p -i
    

方法三:生成自签名证书(临时应急)

若需快速恢复服务,可临时使用自签名证书(浏览器会提示不安全,仅作应急):

  1. 在GHES实例上生成自签名证书:
    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /home/admin/ghes.key -out /home/admin/ghes.crt
    
    按提示填写信息,其中Common Name需填写你的GHES域名
  2. 安装并生效证书:
    sudo -u admin ghe-ssl-certificate-install /home/admin/ghes.crt /home/admin/ghes.key
    sudo ghe-config-apply
    

内容的提问来源于stack exchange,提问作者Çağrı BIYIK

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 18:45:21