TLS Minimal Webserver: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
=Vorarbeit auf Kali=
 +
*sudo ip addr add 10.0.10.99/24 dev eth0
 +
 
=CA, Request, Signierung=
 
=CA, Request, Signierung=
 +
==Verzeichnis erstellen==
 +
*mkdir cert
 +
*cd certs
 +
 
==CA erstellen==
 
==CA erstellen==
*openssl req -new -x509 -newkey rsa:4096 -nodes -keyout ca.key -out ca.crt -days 3650 -subj "/CN=ca.crt"
+
*openssl req -new -x509 -newkey rsa:4096 -nodes -keyout ca.key -out ca.crt -days 3650 -subj "/CN=TestCA"
 +
==CA anzeigen==
 +
*openssl x509 -noout -text -in ca.crt
 +
 
 
==Request und Privaten Key erstellen==
 
==Request und Privaten Key erstellen==
 
FQDN=kali.microsott.de
 
FQDN=kali.microsott.de
 
*openssl req -new -newkey rsa:4096 -nodes -keyout $FQDN.key -out $FQDN.csr -subj "/CN=$FQDN"
 
*openssl req -new -newkey rsa:4096 -nodes -keyout $FQDN.key -out $FQDN.csr -subj "/CN=$FQDN"
 +
==Anzeige des Request==
 +
*openssl req -noout -text -in kali.microsott.de.csr
 +
 
==Signierung==
 
==Signierung==
 
*openssl x509 -req -days 1460 -in $FQDN.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out $FQDN.crt -extfile <(echo "subjectAltName=DNS:$FQDN")
 
*openssl x509 -req -days 1460 -in $FQDN.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out $FQDN.crt -extfile <(echo "subjectAltName=DNS:$FQDN")
 +
==Anzeige des Zertifikats==
 +
*openssl x509 -noout -text -in  kali.microsott.de.crt
 +
==Einbauen des Stammzertifikats auf dem Server==
 +
*cp ca.crt /usr/local/share/ca-certificates/
 +
*update-ca-certificates
 +
 
=Python Webserver=
 
=Python Webserver=
 
*nano https.py
 
*nano https.py
import http.server, ssl
+
<pre>
srv = http.server.HTTPServer(('0.0.0.0', 8443), http.server.SimpleHTTPRequestHandler)
+
import http.server, ssl
srv.socket = ssl.wrap_socket(srv.socket, keyfile="kali.microsott.de.key", certfile="kali.microsott.de.crt", server_side=True)
+
 
srv.serve_forever()
+
server_address = ('0.0.0.0', 8443)
 +
handler = http.server.SimpleHTTPRequestHandler
 +
httpd = http.server.HTTPServer(server_address, handler)
 +
 
 +
context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
 +
context.load_cert_chain(certfile="kali.microsott.de.crt", keyfile="kali.microsott.de.key")
 +
 
 +
httpd.socket = context.wrap_socket(httpd.socket, server_side=True)
 +
 
 +
print("HTTPS läuft auf https://0.0.0.0:8443")
 +
httpd.serve_forever()
 +
</pre>
 +
==Benenden und speichern==
 +
;STRG+x danach Yes
 +
 
 
=Aufruf=
 
=Aufruf=
 
*python3 https.py
 
*python3 https.py
Zeile 18: Zeile 51:
 
*ca.crt auf dem Client importieren und aufrufen
 
*ca.crt auf dem Client importieren und aufrufen
 
=Aufruf im Browser=
 
=Aufruf im Browser=
*https://kali.microsott.de
+
*https://kali.microsott.de:8443

Aktuelle Version vom 22. Januar 2026, 10:39 Uhr

Vorarbeit auf Kali

  • sudo ip addr add 10.0.10.99/24 dev eth0

CA, Request, Signierung

Verzeichnis erstellen

  • mkdir cert
  • cd certs

CA erstellen

  • openssl req -new -x509 -newkey rsa:4096 -nodes -keyout ca.key -out ca.crt -days 3650 -subj "/CN=TestCA"

CA anzeigen

  • openssl x509 -noout -text -in ca.crt

Request und Privaten Key erstellen

FQDN=kali.microsott.de

  • openssl req -new -newkey rsa:4096 -nodes -keyout $FQDN.key -out $FQDN.csr -subj "/CN=$FQDN"

Anzeige des Request

  • openssl req -noout -text -in kali.microsott.de.csr

Signierung

  • openssl x509 -req -days 1460 -in $FQDN.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out $FQDN.crt -extfile <(echo "subjectAltName=DNS:$FQDN")

Anzeige des Zertifikats

  • openssl x509 -noout -text -in kali.microsott.de.crt

Einbauen des Stammzertifikats auf dem Server

  • cp ca.crt /usr/local/share/ca-certificates/
  • update-ca-certificates

Python Webserver

  • nano https.py
import http.server, ssl

server_address = ('0.0.0.0', 8443)
handler = http.server.SimpleHTTPRequestHandler
httpd = http.server.HTTPServer(server_address, handler)

context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
context.load_cert_chain(certfile="kali.microsott.de.crt", keyfile="kali.microsott.de.key")

httpd.socket = context.wrap_socket(httpd.socket, server_side=True)

print("HTTPS läuft auf https://0.0.0.0:8443")
httpd.serve_forever()

Benenden und speichern

STRG+x danach Yes

Aufruf

  • python3 https.py

Import

  • ca.crt auf dem Client importieren und aufrufen

Aufruf im Browser