<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Let%27s_Encrypt_mit_Cloudflare_DNS-Challenge</id>
	<title>Let's Encrypt mit Cloudflare DNS-Challenge - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Let%27s_Encrypt_mit_Cloudflare_DNS-Challenge"/>
	<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Let%27s_Encrypt_mit_Cloudflare_DNS-Challenge&amp;action=history"/>
	<updated>2026-07-06T21:41:04Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Let%27s_Encrypt_mit_Cloudflare_DNS-Challenge&amp;diff=71320&amp;oldid=prev</id>
		<title>Thomas.will: Die Seite wurde neu angelegt: „= Let's Encrypt mit Cloudflare DNS-Challenge =  Zertifikat per '''DNS-01''' über die Cloudflare-API. Kein offener Port, kein Webserver nötig &amp;ndash; Wildcard…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Let%27s_Encrypt_mit_Cloudflare_DNS-Challenge&amp;diff=71320&amp;oldid=prev"/>
		<updated>2026-06-23T09:53:51Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „= Let&amp;#039;s Encrypt mit Cloudflare DNS-Challenge =  Zertifikat per &amp;#039;&amp;#039;&amp;#039;DNS-01&amp;#039;&amp;#039;&amp;#039; über die Cloudflare-API. Kein offener Port, kein Webserver nötig – Wildcard…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Let's Encrypt mit Cloudflare DNS-Challenge =&lt;br /&gt;
&lt;br /&gt;
Zertifikat per '''DNS-01''' über die Cloudflare-API. Kein offener Port,&lt;br /&gt;
kein Webserver nötig &amp;amp;ndash; Wildcard-Zertifikate möglich.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
&lt;br /&gt;
* Domain wird bei Cloudflare verwaltet (Nameserver zeigen auf Cloudflare)&lt;br /&gt;
* Scoped API-Token (nicht den globalen API-Key verwenden)&lt;br /&gt;
&lt;br /&gt;
== Plugin installieren ==&lt;br /&gt;
&lt;br /&gt;
;certbot Cloudflare-Plugin (Debian/Ubuntu)&lt;br /&gt;
 apt install python3-certbot-dns-cloudflare&lt;br /&gt;
&lt;br /&gt;
== API-Token bei Cloudflare anlegen ==&lt;br /&gt;
&lt;br /&gt;
''My Profile &amp;amp;rarr; API Tokens &amp;amp;rarr; Create Token''&lt;br /&gt;
&lt;br /&gt;
Permissions:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;Zone : DNS : Edit&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;Zone : Zone : Read&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unter ''Zone Resources'' auf die konkrete Zone einschränken.&lt;br /&gt;
&lt;br /&gt;
== Credentials-Datei ==&lt;br /&gt;
&lt;br /&gt;
;Token hinterlegen&lt;br /&gt;
 vim /etc/letsencrypt/cloudflare.ini&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dns_cloudflare_api_token = 2XX_DEIN_TOKEN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Rechte setzen (sonst meckert certbot)&lt;br /&gt;
 chmod 600 /etc/letsencrypt/cloudflare.ini&lt;br /&gt;
&lt;br /&gt;
== Zertifikat anfordern ==&lt;br /&gt;
&lt;br /&gt;
;Einzeldomain + Wildcard&lt;br /&gt;
 certbot certonly \&lt;br /&gt;
   --dns-cloudflare \&lt;br /&gt;
   --dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini \&lt;br /&gt;
   -d 2XX.de -d '*.2XX.de'&lt;br /&gt;
&lt;br /&gt;
Das Plugin setzt automatisch den TXT-Record &amp;lt;code&amp;gt;_acme-challenge&amp;lt;/code&amp;gt;,&lt;br /&gt;
wartet auf die Propagation und entfernt ihn danach wieder.&lt;br /&gt;
&lt;br /&gt;
== Stolpersteine ==&lt;br /&gt;
&lt;br /&gt;
;Träges DNS &amp;amp;ndash; Wartezeit erhöhen (Default 10s)&lt;br /&gt;
 --dns-cloudflare-propagation-seconds 30&lt;br /&gt;
&lt;br /&gt;
;Proxy-Status (orange Wolke)&lt;br /&gt;
Stört die DNS-Validierung '''nicht''' &amp;amp;ndash; der TXT-Record wird trotzdem&lt;br /&gt;
aufgelöst. Nur bei der HTTP-Challenge wäre die Wolke ein Problem.&lt;br /&gt;
&lt;br /&gt;
== Renewal ==&lt;br /&gt;
&lt;br /&gt;
Erneuerung läuft automatisch über den certbot-Timer. Die Credentials&lt;br /&gt;
sind in der renewal-conf hinterlegt, daher kein erneutes Eingreifen nötig.&lt;br /&gt;
&lt;br /&gt;
;Test ohne echtes Erneuern&lt;br /&gt;
 certbot renew --dry-run&lt;br /&gt;
&lt;br /&gt;
== Deploy-Hook (optional) ==&lt;br /&gt;
&lt;br /&gt;
;Dienst nach Erneuerung neu laden&lt;br /&gt;
 certbot certonly ... --deploy-hook &amp;quot;systemctl reload nginx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Zertifikate liegen unter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/letsencrypt/live/2XX.de/fullchain.pem&lt;br /&gt;
/etc/letsencrypt/live/2XX.de/privkey.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
</feed>