Meine Scripte zum Erstellen und Erneuern der Let’s Encrypt funktionierte nach einem Serverumzug und ein paar Konfigurationsänderungen nicht mehr. Folgende Fehlermeldung wurde ausgeworfen:
Verifying www.domain.tld...
Traceback (most recent call last):
File "/usr/local/bin/acme_tiny", line 141, in get_crt
assert (disable_check or _do_request(wellknown_url)[0] == keyauthorization)
File "/usr/local/bin/acme_tiny", line 46, in _do_request
raise ValueError("{0}:\nUrl: {1}\nData: {2}\nResponse Code: {3}\nResponse: {4}".format(err_msg, url, data, code, resp_data))
ValueError: Error:
Url: http://www.domain.tld/.well-known/acme-challenge/xr8lBzb_kujRUBCVMwXI7dVLy1m6wrfEkhw-Jr_Mapw
Data: None
Response Code: None
Response: <urlopen error [Errno 8] Name does not resolve>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/bin/acme_tiny", line 198, in <module>
main(sys.argv[1:])
File "/usr/local/bin/acme_tiny", line 194, in main
signed_crt = get_crt(args.account_key, args.csr, args.acme_dir, log=LOGGER, CA=args.ca, disable_check=args.disable_check, directory_url=args.directory_url, contact=args.contact)
File "/usr/local/bin/acme_tiny", line 143, in get_crt
raise ValueError("Wrote file to {0}, but couldn't download {1}: {2}".format(wellknown_path, wellknown_url, e))
ValueError: Wrote file to /usr/local/www/challenges/xr8lBzb_kujRUBCVMwXI7dVLy1m6wrfEkhw-Jr_Mapw, but couldn't download http://www.domain.tld/.well-known/acme-challenge/xr8lBzb_kujRUBCVMwXI7dVLy1m6wrfEkhw-Jr_Mapw: Error:
Url: http://www.domain.tld/.well-known/acme-challenge/xr8lBzb_kujRUBCVMwXI7dVLy1m6wrfEkhw-Jr_Mapw
Data: None
Response Code: None
Response: <urlopen error [Errno 8] Name does not resolve>
Signierung nicht erfolgreich!
Wie ich dann herausgefunden habe, mag Let’s Encrypt nicht mit der Konfiguration Redirect permanent spielen:
<VirtualHost *:80> ServerName domain.tld ServerAlias www.domain.tld ServerAdmin contact@domain.tld DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined Redirect permanent / https://domain.tld/ <Directory /var/www/html> Options FollowSymLinks AllowOverride all Require all granted </Directory> </VirtualHost>
Nachdem ich statt mit
Redirect permanent / https://domain.tld/
das Umschreiben zu HTTPS mittels folgendem Block
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/.well-known/.*$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301]
umgesetzt habe, konnte ich wieder Zertifikate anfordern und erneuern.