<?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=Python_Webserver_mit_SSL%2FTL</id>
	<title>Python Webserver mit SSL/TL - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Python_Webserver_mit_SSL%2FTL"/>
	<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Python_Webserver_mit_SSL/TL&amp;action=history"/>
	<updated>2026-06-28T18:30:52Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Python_Webserver_mit_SSL/TL&amp;diff=70572&amp;oldid=prev</id>
		<title>Thomas.will: Die Seite wurde neu angelegt: „ = Python Webserver mit SSL/TLS =  In dieser Anleitung wird ein einfacher HTTPS-Webserver mit Python erstellt, der statische Inhalte aus einem Verzeichnis ausl…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Python_Webserver_mit_SSL/TL&amp;diff=70572&amp;oldid=prev"/>
		<updated>2026-06-03T14:27:36Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „ = Python Webserver mit SSL/TLS =  In dieser Anleitung wird ein einfacher HTTPS-Webserver mit Python erstellt, der statische Inhalte aus einem Verzeichnis ausl…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
= Python Webserver mit SSL/TLS =&lt;br /&gt;
&lt;br /&gt;
In dieser Anleitung wird ein einfacher HTTPS-Webserver mit Python erstellt, der statische Inhalte aus einem Verzeichnis ausliefert.&lt;br /&gt;
= Als erstes müssen wir die fullchain.pem und den privaten Schlüssl zu Server bringen=&lt;br /&gt;
*scp fullchain.pem  www.it213.int.key www: &lt;br /&gt;
&lt;br /&gt;
= Auf dem Webserver=&lt;br /&gt;
*ssh kit@www&lt;br /&gt;
== Verzeichnis erstellen ==&lt;br /&gt;
&lt;br /&gt;
Zuerst wird ein Arbeitsverzeichnis für die Webinhalte und das Server-Skript angelegt.&lt;br /&gt;
&lt;br /&gt;
* mkdir html&lt;br /&gt;
&lt;br /&gt;
== Keys anpassen ==&lt;br /&gt;
&lt;br /&gt;
Die Zertifikatsdateien müssen in das Verzeichnis kopiert und für das Skript passend benannt werden.&lt;br /&gt;
&lt;br /&gt;
* cp fullchain.pem html/own.crt&lt;br /&gt;
* cp www.it213.int.key html/own.key&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
Das Python-Skript konfiguriert den Server so, dass er auf Port 8443 lauscht und die SSL-Verschlüsselung nutzt.&lt;br /&gt;
&lt;br /&gt;
* nano html/https.py&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import http.server, ssl&lt;br /&gt;
&lt;br /&gt;
server_address = ('0.0.0.0', 8443)&lt;br /&gt;
handler = http.server.SimpleHTTPRequestHandler&lt;br /&gt;
httpd = http.server.HTTPServer(server_address, handler)&lt;br /&gt;
&lt;br /&gt;
context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)&lt;br /&gt;
context.load_cert_chain(certfile=&amp;quot;own.crt&amp;quot;, keyfile=&amp;quot;own.key&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
httpd.socket = context.wrap_socket(httpd.socket, server_side=True)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;HTTPS läuft auf https://0.0.0.0:8443&amp;quot;)&lt;br /&gt;
httpd.serve_forever()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Statische Seite erstellen ==&lt;br /&gt;
&lt;br /&gt;
Damit der Server eine Seite anzeigt, wird eine index.html im Verzeichnis erstellt.&lt;br /&gt;
&lt;br /&gt;
* nano html/index.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;IT213 Testseite&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Erfolg!&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Der verschlüsselte Python-Webserver funktioniert und liefert diese Seite aus.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Starten ==&lt;br /&gt;
&lt;br /&gt;
Um den Server zu starten, wechselt man in das Verzeichnis und führt das Skript aus.&lt;br /&gt;
&lt;br /&gt;
* cd html&lt;br /&gt;
* python3 https.py&lt;br /&gt;
&lt;br /&gt;
Der Zugriff erfolgt im Browser über https://www.it213.int:8443.&lt;br /&gt;
== Tests vom Client ==&lt;br /&gt;
;Verschlüsselter Verbindungsaufbau&lt;br /&gt;
*openssl s_client -host www.it213.int -port 8443&lt;br /&gt;
;Welche Zertifikate werden angeboten?&lt;br /&gt;
*nmap --script ssl-cert www.it213.int -p 8443&lt;br /&gt;
;Welche SSL/TLS Versionen werden angeboten&lt;br /&gt;
*nmap --script ssl-enum-ciphers www.it213.int -p 8443&lt;/div&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
</feed>