My domain is: fulaphex.duckdns.org
I ran this command: cerbot -d fulaphex.duckdns.org
It produced this output:
sudo ~/certbot certonly --standalone -d fulaphex.duckdns.org -m gabor94@gmail.com -v
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Requesting a certificate for fulaphex.duckdns.org
Performing the following challenges: http-01 challenge for fulaphex.duckdns.org Waiting for verification...
Challenge failed for domain fulaphex.duckdns.org http-01 challenge for fulaphex.duckdns.org
Certbot failed to authenticate some domains (authenticator: standalone). The Certificate Authority reported these problems:
Domain: fulaphex.duckdns.org
Type: connection
Detail: 141.147.97.210: Fetching http://fulaphex.duckdns.org/.well-known/acme-challenge/gWLAJffTd_KTxpQ7h4IyXCMHhTzCUyiUbBGrb2JNi7E: Error getting validation data
Hint: The Certificate Authority failed to download the challenge files from the temporary standalone webserver started by Certbot on port 80. Ensure that the listed domains point to this machine and that it can accept inbound connections from the internet.
Cleaning up challenges Some challenges have failed. Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.
The operating system my web server runs on is (include version): manjaro linux
I can login to a root shell on my machine (yes or no, or I don't know): yes
The version of my client is (e.g. output of certbot --version
or certbot-auto --version
if you're using Certbot): certbot 2.6.0
I have a setup with two machines:
- A has a public IP and is running a proxy to
- B that cannot be reached directly from the internet
I'm running wireguard on A and connect from B through that, and A is running haproxy that proxies all the traffic on 80 and 443 to B. I can run certbot directly on A and it works okay, but I need to run it on B.
When running certbot on B I get the error mentioned above. The only way that I got it to succeed was to run with--debug-challenges -v
and waiting a couple seconds (I was testing that I can curl the challenge from a separate machine). By the time I copy and paste that url between terminal windows I can already curl the challenge, so the extra time there isn't more than a couple of seconds. Has somebody encountered such error before? Any ideas on what I could be doing wrong?
haproxy.conf from A
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
stats timeout 30s
user haproxy
group haproxy
daemon
# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
# See: https://ssl-config.mozilla.org/#server=haproxy&server-version=2.0.3&config=intermediate
ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
#---------------------------------------------------------------------
# Proxys to the webserver backend port 80
#---------------------------------------------------------------------
frontend http
bind :80
mode tcp
option tcplog
# Wait for a client hello for at most 5 seconds
tcp-request inspect-delay 5s
tcp-request content accept if { req_ssl_hello_type 1 }
default_backend http
backend http
mode tcp
balance roundrobin
server optiplex 10.23.0.2:80 check
#---------------------------------------------------------------------
# Proxys to the webserver backend port 443
#---------------------------------------------------------------------
frontend ssl
bind :443
mode tcp
option tcplog
# Wait for a client hello for at most 5 seconds
tcp-request inspect-delay 5s
tcp-request content accept if { req_ssl_hello_type 1 }
default_backend ssl
backend ssl
mode tcp
balance roundrobin
server optiplex 10.23.0.2:443 check