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 offtitle winStonesethttpport=8080setwwwroot=%~dp0htmlsetlogdir=%~dp0logssethttps=--httpsPort=443 --httpsKeyStore=%~dp0keystore.jks --httpsKeyStorePassword=123456ifnot exist %wwwroot%\NUL mkdir %wwwroot%ifnot exist %logdir%\NUL mkdir %logdir%ifnot 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=htmllogdir=logshttpsPort=443httpsKeyStore=keystore.jkshttpsKeyStorePassword=123456accessLoggerClassName=winstone.accesslog.SimpleAccessLogger useSavedSessions=truehttpListenAddress=127.0.0.1httpPort=8080 | 
 Die Pfadangaben sind alle relativ zum aktuellen Verzeichnis.
 
        
No comments to display
No comments to display