Zum Inhalt springen
hanse-computing.de
  • Moin
  • Über uns
  • Leistungen
  • Projekte
  • Neuigkeiten
  • Wissen
    • Netzwerktechniken
    • Systemadministration
    • Hardware-Spezifikationen
    • KI & Automatisierung
    • Glossar
      • Fachbegriffe
      • Programmiersprachen-Befehle
    • Datenbanken
    • IT-Grundlagen
    • Python: Grundlagen
    • Python: Datenstrukturen
    • Python: Dateien & IO
    • Python: Web & Frameworks
    • Python: Fehler & Debugging
    • Webentwicklung
    • Linux & Betriebssysteme
    • IT-Sicherheit
    • Cloud & Container
    • Tools & Software
    • Netzwerk: TCP/IP
    • Netzwerk: DNS & Dienste
    • Netzwerk: Sicherheit
    • Netzwerk: Tools
    • KI: Grundlagen
    • KI: Praxis
    • KI: LLM & Agenten
    • Hardware: Server
    • Hardware: Netzwerkgeräte
    • Hardware: Peripherie
    • Wiki-Startseite
    • Letzte Änderungen
    • Kategorie-Browser
    • Zufallsartikel
  • Infrastruktur
  • AI Easy Start
  • Test-Drive
  • Kontakt
  • Impressum
  • Datenschutz

Sprache auswählen

  • Deutsch (Deutschland)
  • English (United Kingdom)
  1. Aktuelle Seite:  
  2. Startseite
  3. Wissen
  4. Glossar
  5. Programmiersprachen-Befehle

OpenSSL-Befehle: Schlüssel, Zertifikate und TLS-Verbindungen prüfen

OpenSSL ist die wichtigste Kommandozeilen-Werkzeugsammlung für Transport Layer Security (TLS). Mit ihr erzeugt man Schlüsselpaare und Zertifikate, prüft Zertifikatsdateien und testet TLS-Verbindungen zu Servern. Die Bibliothek steckt praktisch überall: im Apache- und Nginx-Webserver, in OpenSSH, in Python und in zahllosen VPN- und Mail-Programmen.

Schlüsselpaar und Zertifikat erzeugen

Ein selbstsigniertes Zertifikat mit neuem Schlüssel entsteht in einem Schritt:

openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365 -subj "/CN=example.de"

Dabei steht -nodes für "no DES" und lässt den privaten Schlüssel unverschlüsselt (nur für Testzwecke). Moderne Schlüssel erzeugt man getrennt mit openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:3072 -out key.pem; der ältere Befehl openssl genrsa -out key.pem 2048 funktioniert weiterhin. Einen Certificate Signing Request (CSR) für eine echte Zertifizierungsstelle stellt man mit openssl req -new -key key.pem -out request.csr aus.

Zertifikate prüfen

openssl x509 -in cert.pem -text -noout
openssl x509 -in cert.pem -dates -subject -issuer -noout
openssl verify -CAfile ca.pem server.pem

Die häufigste Fehlerquelle bei Web-Servern ist ein abgelaufenes oder unvollständiges Zertifikat — -dates zeigt Gültigkeitsbeginn und -ende, -issuer die ausstellende Stelle.

Live-TLS-Verbindung testen

openssl s_client -connect example.de:443 -servername example.de

s_client ist der klassische Weg, um zu sehen, welches Zertifikat ein Server wirklich ausliefert und welche TLS-Version ausgehandelt wird. Das -servername-Argument ist bei virtuellen Hosts Pflicht (SNI).

Dateien ver- und entschlüsseln

openssl enc -aes-256-cbc -salt -in datei.txt -out datei.enc
openssl dgst -sha256 datei.txt

enc verschlüsselt Dateien symmetrisch, dgst berechnet Prüfsummen beziehungsweise Signaturen. Seit OpenSSL 3.0 (September 2021) ist das Kommandozeilen-Verhalten strenger: Der MD5-basierte -md5-Standard von enc wurde abgeschafft, unsichere Algorithmen wie der 1024-Bit-Diffie-Hellman-Parameter werden abgelehnt.

Formate umwandeln

openssl pkcs12 -export -in cert.pem -inkey key.pem -out bundle.p12
openssl pkcs12 -in bundle.p12 -nodes -out combined.pem

Der PKCS12-Austausch (Dateiendung .p12 beziehungsweise .pfx) ist das Bindeglied zwischen OpenSSL-Welt und Java-Keystores — dort importiert man genau solche Dateien per keytool. Wer E-Mails nach dem offenen OpenPGP-Standard verschlüsselt, nutzt statt OpenSSL das Schwesterwerkzeug GPG.

Verwandte Grundlagen: Keytool-Befehle, SSL/TLS, X.509-Zertifikate.

Apache-Befehle: Den Apache HTTP Server verwalten

Apache HTTP Server (auf Debian/Ubuntu apache2, auf RHEL/Fedora httpd genannt) ist der meistgenutzte Webserver im Internet. Dieser Artikel zeigt die wichtigsten Kommandos für Installation, Konfiguration, Module und den laufenden Betrieb.

Dienst steuern

Unter systemd-Linuxen startet, stoppt und lädt man den Dienst über systemctl:

sudo systemctl start apache2      # Dienst starten
sudo systemctl stop apache2       # Dienst stoppen
sudo systemctl restart apache2    # kompletter Neustart
sudo systemctl reload apache2     # Konfiguration neu laden (ohne Verbindungsabbruch)
sudo systemctl status apache2     # Status anzeigen
sudo systemctl enable apache2     # Autostart aktivieren

apache2ctl und httpd

Das Steuerprogramm apache2ctl (bzw. apachectl) ist ein Frontend zum Binärprogramm httpd und kann dessen Argumente direkt durchreichen:

sudo apache2ctl configtest    # Konfigurationsdateien auf Syntax prüfen (Syntax OK)
sudo apache2ctl graceful      # Konfiguration neu laden, Verbindungen bleiben bestehen
sudo apache2ctl -S            # virtuelle Hosts/Konfiguration anzeigen
sudo apache2ctl -M            # geladene Module auflisten
sudo apache2ctl -t -D DUMP_VHOSTS   # vhosts als Dump ausgeben

Module und Seiten aktivieren (Debian/Ubuntu)

Debian-basierte Systeme verwalten Module und virtuelle Hosts über Symlinks in /etc/apache2/:

sudo a2enmod ssl             # Modul aktivieren (z.B. mod_ssl)
sudo a2dismod rewrite        # Modul deaktivieren
sudo a2ensite meine-seite    # virtuellen Host aktivieren
sudo a2dissite 000-default   # virtuellen Host deaktivieren
sudo apache2ctl configtest   # nach Änderungen Syntax prüfen
sudo systemctl reload apache2

Dabei liest a2enmod den Modulnamen aus /etc/apache2/mods-available/ und legt einen Symlink in mods-enabled/ an; a2ensite macht dasselbe mit Konfigurationsdateien aus sites-available/.

Zugriffsschutz mit htpasswd

Die Basic-Authentifizierung wird mit htpasswd verwaltet. Die Datei liegt typischerweise außerhalb des DocumentRoot:

sudo htpasswd -c /etc/apache2/.htpasswd michael   # neue Datei anlegen, User hinzufügen
sudo htpasswd /etc/apache2/.htpasswd thomas       # weiteren User ergänzen
sudo htpasswd -D /etc/apache2/.htpasswd thomas    # User löschen

Die Passwörter werden dabei standardmäßig als bcrypt-Hashes gespeichert (Apache 2.4.4+).

Wichtige Verzeichnisse

  • /etc/apache2/ – Konfiguration inkl. apache2.conf, ports.conf, sites-available/, mods-available/
  • /var/www/ – DocumentRoot der Standard-Seiten
  • /var/log/apache2/ – access.log und error.log
  • /usr/sbin/apache2 – das eigentliche Binärprogramm (httpd)

Verwandte Grundlagen: Webserver, Nginx-Befehle, Tomcat-Befehle, Reverse-Proxy, Load-Balancer, SSL/TLS.

Nginx-Befehle: Konfiguration testen und den Dienst steuern

Nginx (ausgesprochen „Engine X“) ist ein Hochleistungs-Webserver, Reverse-Proxy und Load-Balancer. Seine Prozessarchitektur besteht aus einem Master-Prozess und mehreren Worker-Prozessen. Dieser Artikel erklärt die wichtigsten Befehle und Signale für den Betrieb.

Konfiguration testen

Vor jedem Reload sollte die Konfiguration geprüft werden – Nginx selbst bietet dafür den -t-Schalter:

sudo nginx -t              # Konfiguration testen (syntax is ok)
sudo nginx -T              # komplett aufgelöste Konfiguration ausgeben
sudo nginx -t -c /etc/nginx/nginx.conf   # alternative Konfigurationsdatei testen

Dienst mit systemctl steuern

sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl reload nginx      # Konfiguration neu laden, kein Ausfall
sudo systemctl status nginx
sudo systemctl enable nginx      # Autostart

Signale an den Master-Prozess

Alternativ lässt sich der Master-Prozess direkt per Signal steuern – das Kommando nginx -s ist der sichere Weg, da es die PID-Datei selbst findet:

sudo nginx -s reload    # Konfiguration neu laden (entspricht HUP)
sudo nginx -s reopen    # Logdateien neu öffnen (entspricht USR1, nach logrotate)
sudo nginx -s quit      # graceful shutdown (entspricht QUIT, offene Verbindungen enden)
sudo nginx -s stop      # sofortiger Stopp (entspricht TERM)

Weitere Signale: USR2 startet einen neuen Master-Prozess für binäre Upgrades, WINCH beendet die alten Worker-Prozesse kontrolliert.

Verzeichnisstruktur

  • /etc/nginx/ – Hauptkonfiguration nginx.conf, dazu sites-available/, sites-enabled/, conf.d/, modules-enabled/
  • /etc/nginx/sites-enabled/ – aktivierte Server-Blöcke (meist Symlinks)
  • /var/www/html/ – Standard-DocumentRoot auf Debian/Ubuntu
  • /var/log/nginx/ – access.log und error.log

Ein Server-Block (Virtual Host) liegt in /etc/nginx/sites-available/beispiel.de und wird über einen Symlink in sites-enabled/ aktiviert. Nach jeder Änderung gilt: erst nginx -t, dann systemctl reload nginx.

Verwandte Grundlagen: Webserver, Apache-Befehle, Tomcat-Befehle, Reverse-Proxy, Load-Balancer, TLS 1.3.

Tomcat-Befehle: Apache Tomcat starten und verwalten

Apache Tomcat ist eine Open-Source-Implementierung der Jakarta-Servlet-Spezifikation und der meistgenutzte Container für Java-Webanwendungen. Tomcat wird über Skripte im bin/-Verzeichnis oder systemd gesteuert; die Umgebungsvariablen CATALINA_HOME (Installation) und CATALINA_BASE (Instanz) bestimmen den Betrieb.

Start und Stopp

$CATALINA_HOME/bin/startup.sh        # Tomcat im Hintergrund starten
$CATALINA_HOME/bin/shutdown.sh       # Tomcat kontrolliert stoppen
$CATALINA_HOME/bin/catalina.sh run   # im Vordergrund starten (für Debug/Container)

Unter Windows heißen die Skripte startup.bat und shutdown.bat. Als systemd-Dienst (z.B. tomcat9 unter Debian/Ubuntu) gilt:

sudo systemctl start tomcat9
sudo systemctl stop tomcat9
sudo systemctl restart tomcat9
sudo systemctl status tomcat9

catalina.sh im Detail

Das zentrale Steuerskript catalina.sh kennt weitere Aktionen:

catalina.sh start          # wie startup.sh
catalina.sh run            # Vordergrund (Logs direkt auf der Konsole)
catalina.sh stop           # wie shutdown.sh
catalina.sh stop -force    # hart stoppen (kill -9) bei Timeout
catalina.sh configtest     # server.xml auf Syntax prüfen (Exit-Code beachten)
catalina.sh version        # Versionsnummern anzeigen
catalina.sh start -security    # mit SecurityManager starten (Java 17+ entfernt)

Die Java-Optionen lassen sich über die Umgebungsvariable JAVA_OPTS setzen, z.B. für den Heap:

export JAVA_OPTS="-Xms512m -Xmx1024m"
$CATALINA_HOME/bin/startup.sh

Wichtige Verzeichnisse

  • conf/ – server.xml (Ports, Hosts, Connectors), web.xml, context.xml, tomcat-users.xml
  • webapps/ – deployte Webanwendungen (WAR-Dateien werden hier abgelegt und automatisch deployed)
  • logs/ – catalina.out, localhost.log, access_log
  • bin/ – Start-/Stoppskripte und tomcat-juli.jar
  • lib/ – gemeinsame Bibliotheken für alle Anwendungen

Manager- und Deploy-Befehle

Die Manager-Web-App erlaubt das Deployment per HTTP (PUT einer WAR-Datei auf /manager/text/deploy?path=/meine-app) oder per Kommandozeile mit curl:

curl -u tomcat:geheim http://localhost:8080/manager/text/list
curl -u tomcat:geheim -T meine-app.war "http://localhost:8080/manager/text/deploy?path=/meine-app"
curl -u tomcat:geheim "http://localhost:8080/manager/text/undeploy?path=/meine-app"

Der Standard-Port ist 8080 (HTTP) und 8005 (Shutdown); der Zugriff auf die Manager-App erfordert in tomcat-users.xml hinterlegte Rollen wie manager-gui.

Verwandte Grundlagen: Java-Befehle, Apache-Befehle, Nginx-Befehle, Webserver, Reverse-Proxy.

Gobo-Eiffel-Befehle: Portable Werkzeuge für die Eiffel-Community

Gobo Eiffel ist eine Sammlung freier, portabler Eiffel-Werkzeuge und Bibliotheken. Das Projekt stellt der Eiffel-Community Tools bereit, die über verschiedene Eiffel-Compiler hinweg lauffähig sind — die Bibliotheken und Programme lassen sich dadurch unabhängig vom verwendeten Compiler einsetzen.

Die wichtigsten Werkzeuge

  • geant — XML-basiertes Build-Werkzeug nach Art von Apache Ant; führt deklarative Build-Skripte aus und ersetzt ein Make für Eiffel-Projekte.
  • gec — der Gobo Eiffel Compiler, ein Open-Source-Kommandozeilen-Compiler; er übersetzt über ein C-Backend, wahlweise auch mit einer Zig-Toolchain.
  • gelex — Lexer-Generator nach dem Vorbild von Lex; erzeugt Scanner aus lexikalischen Spezifikationen.
  • geyacc — Parser-Generator nach dem Vorbild von Yacc; erzeugt LALR-Parser aus Grammatikdateien.
  • gepp — Preprozessor, ein Filterprogramm, das Preprocessing-Anweisungen in Textdateien interpretiert (selbst mit gelex und geyacc in Eiffel geschrieben).
  • getest — Werkzeug zum Ausführen von Test-Suites.
  • gelint — Linter zur statischen Prüfung von Eiffel-Quelltext.
  • gexslt — Kommandozeilen-Prozessor für XSLT-Transformationen (XSLT 2.0).

Arbeiten mit Gobo

Die Binaries liegen nach der Installation im Verzeichnis $GOBO/bin, das in den PATH aufgenommen wird. Die Bibliotheken umfassen unter anderem die Gobo Eiffel Tools Library, einen XML-Parser, eine XSLT-2.0-Implementierung sowie Regex-, Datums- und Zeit-Bausteine.

export GOBO=/opt/gobo
export PATH=$GOBO/bin:$PATH
geant            # Build-Skript (XML) ausführen
gec --help       # Compiler-Hilfe
gelex date_scan.l
geyacc grammar.y

Verwandte Grundlagen: Eiffel-Befehle, EiffelStudio-Befehle, Liberty-Eiffel-Befehle.

  1. EiffelStudio-Befehle: Die offizielle Eiffel-IDE kompakt
  2. Liberty-Eiffel-Befehle: Der GNU-Eiffel-Compiler se
  3. RELAX-NG-Befehle: Kompakte XML-Schemas mit Jing und Trang
  4. Schematron-Befehle: Regelbasierte XML-Validierung mit XPath

Seite 12 von 45

  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
hanse-computing.de

hanse-computing.de – KI-gestützte Dienstleistungen aus Lübeck.

hanse-computing.de
IT-Dienstleistungen aus der Hansestadt
Über uns · Projekte · Neuigkeiten · Affiliate
Impressum · Datenschutz
© 2026 hanse-computing.de
© 2026 hanse-computing Impressum Datenschutz