Problem mit RedirectPermanent und automatischen Updates von Let’s Encrypt

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.

Weiterlesen