Ein minimalistischer Webserver mit SSL Unterstützung in JAVA
Für den Fall das man mal einen kleinen WebServer mit SSL Unterstützung benötigt, den man darüber hinaus auch nicht installieren muss, ist WinStone interessant.
Es muss dazu nur eine gültige JavaRE installiert sein und mit 319kb Dateigröße ist er erfreulich klein.
Featureübersicht
Kostenlos | |
Klein | |
Muss nicht installiert werden (portable) | |
Open Source | |
Unterstützt SSL | |
Funktioniert unter Linux und Windows | |
Port(s) konfigurierbar | |
Logging konfigurierbar | |
Benötigt keine Adminrechte | |
"Installationspfad" frei wählbar |
Zertifikat für SSL erstellen
Die folgende Codezeile legt auf deinem Desktop den Keystore mit dem selbstsignierten SSL Zertifikat an. Die Gültigkeit wird dabei mit -validity
festgelegt und beträgt hier 30 Jahre ( 365 * 10 * 3 = 10950). Storepass ist das Passwort zu dem Keystore. Kann nach belieben auch angepasst werden.
"%java_home%\bin\keytool" -selfcert -genkey -keyalg RSA -keystore %userprofile%\desktop\keystore.jks -storepass 123456 -validity 10950 |
Anschliessend dann den Keystore in dasselbe Verzeichnis wie Winstone verschieben. Mehr zum Thema keytool auf den Seiten von Oracle.
Aufruf des WebServers
Für den Aufruf ist es ratsam eine Batchdatei in demselben Verzeichnis wie die heruntergeladene Datei winstone-0.9.10.jar anzulegen, die in z.B. so aussehen kann
@echo off title winStone set httpport=8080 set wwwroot=%~dp0html set logdir=%~dp0logs set https=--httpsPort=443 --httpsKeyStore=%~dp0keystore.jks --httpsKeyStorePassword=123456 if not exist %wwwroot%\NUL mkdir %wwwroot% if not exist %logdir%\NUL mkdir %logdir% if not exist %~dp0jar\NUL ( mkdir "%~dp0jar" move winstone-0.9.10.jar "%~dp0jar" > nul ) java -jar %~dp0jar\winstone-0.9.10.jar --webroot=%wwwroot%\ --logfile=%logdir%\log.log --httpPort=%httpport% --accessLoggerClassName=winstone.accesslog.SimpleAccessLogger --useSavedSessions --httpListenAddress=127.0.0.1 %https% |
Der eintrag --httpListenAddress=127.0.0.1 fürht dazu, das der Server nur über Localhost aufrufbar ist. Besucher von aussen werden abgelehnt. Durch löschen dieses Parameters sind aufruf über alle Netzwerkadressen zulässig.
Siehe dazu auch die Dokumentation auf http://winstone.sourceforge.net/#using
Parameter in eine Properties-Datei verschieben
Per Default sucht die JavaDatei nach einer Properties Datei namens winstone.properties
im selbsen Verzeichnis.
Das ist auch die besserer Methode, weil sonst alle Parameter im Taskmanager zu sehen sind, inkl. dem httpsKeyStorePassword
webroot=html logdir=logs httpsPort=443 httpsKeyStore=keystore.jks httpsKeyStorePassword=123456 accessLoggerClassName=winstone.accesslog.SimpleAccessLogger useSavedSessions= true httpListenAddress=127.0.0.1 httpPort=8080 |
Die Pfadangaben sind alle relativ zum aktuellen Verzeichnis.
No Comments