I have a GitHub Enterprise Server instance hosted on AWS in a private subnet that does not have a public IP address. The TLS certificate for the GitHub server has expired, and I need to renew it. I tried using the ghe-ssl-acme command with the
sudo -u admin /usr/local/bin/ghe-ssl-acme -p -i
option, but I encountered an error that the ACME server could not find a valid A or AAAA record.
How can I renew the TLS certificate for my GitHub Enterprise Server without a public IP address and with an expired TLS certificate?
Seems you are generating public cert for your github enterprise server host through Let's encrypt (based on
ghe-ssl-acmecommand). Let's encrypt tries to validate your host domain name by HTTP-01 challenge (default one in case of Github enterprise server) to confirm if you own that domain & for that you need to have A record in your DNS pointing to GHES.You can do following things
22required layer 4 load balancer . You can use public NLB for it . So flow would look like NLB (listener on port22) -> target group -> ec2 . You can also do same for administrative shell port122as well. For HTTP/s ports443(ghes over https) &8443(ghes management console) flow would be like NLB (listeners on ports8443,443) -> ALB (listeners on8443,443) -> target groups (8443,443) -> ec2 instance (hosting ghes server).8443port) OR by firingghe-ssl-acmecommand in Administrative shell (port122) of GHES