TLS Minimal Webserver: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (10 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=TestCA" | *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 | ||
| − | + | <pre> | |
| − | + | 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() | ||
| + | </pre> | ||
| + | ==Benenden und speichern== | ||
| + | ;STRG+x danach Yes | ||
| + | |||
=Aufruf= | =Aufruf= | ||
*python3 https.py | *python3 https.py | ||
| Zeile 19: | 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