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-acme
command). 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
22
required 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 port122
as 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).8443
port) OR by firingghe-ssl-acme
command in Administrative shell (port122
) of GHES