Spezialkonfigurationen
Es gibt, abgesehen von den Properties, noch weitere Konfigurationsmöglichkeiten für den SecureConnector. Auf diese wird hier eingegangen.
Verwendung des SecureConnectors hinter einem Proxy-Server
Da der SecureConnector nicht über HTTP kommuniziert, sondern über AMQP, ist ein einfacher Apache-Proxy nicht ausreichend, um den SecureConnector hinter einem Proxy zu betreiben. Stattdessen muss ein SOCKS-Proxy (SOCKetSecure) eingerichtet werden, der den TCP-Datenverkehr weiterleitet.
Der entsprechende Proxy muss SOCKS-4 oder SOCKS-5 verstehen, damit der SecureConnector eine entsprechende Verbindung aufbauen kann.
Die JVM kann dazu gebracht werden, alle Netzwerkverbindungen über den Proxy zu schicken, indem Kommandozeilenparameter mitgegeben werden. Die entsprechenden Parameter sind socksProxyHost und socksProxyPort. Diese müssen als JVM Argumente angegeben werden und nicht als Applikationsargumente. Ein Aufruf hat daher so auszusehen:
Es ist wichtig, dass beide Properties vor dem -jar Parameter stehen.
Für den Fall, dass einzelne Hosts nicht über den Proxy angesprochen werden sollen, können diese mit dem Parameter socksNonProxyHosts in einer mit | separierten Liste angegeben werden. Wenn also z.B. der Host machproforms.de und der Host google.com nicht per Proxy, sondern direkt aufgerufen werden sollen, dann würde der Befehl für den SecureConnector so aussehen:
Wichtig:
Die Proxy-Properties werden nur einmal beim Start der Anwendung geprüft und sind zur Laufzeit nicht änderbar.
Verschlüsselte Daten in der application.properties Datei
Um Einträge in der application.properties-Datei verschlüsselt abzulegen, wird das Spring Cloud CLI benötigt. Mit diesem können die Einträge verschlüsselt werden und die verschlüsselten Einträge können vom SecureConnector entschlüsselt und direkt verwendet werden.
Alternativ können Sie bei MACH ProForms um eine Parameterverschlüsselung bitten, Sie werden dann die entsprechenden Werte zurückerhalten.
Spring Cloud CLI installieren
Es wird zuerst ein Spring Boot CLI in Version 1.4.4 oder besser benötigt. Sie können dieses hier als .zip oder .tar.gz-Datei herunterladen. Nach dem Download müssen Sie den Installationsschritten folgen, die in der mitgelieferten INSTALL.txt` beschrieben sind. Sollten Sie Kommandozeilenvervollständigung benötigen, so ist die Aktivierung dieser hier beschrieben.
Danach können Sie das installierte Spring Boot CLI verwenden, um das Spring Cloud CLI zu installieren:
Nun benötigen Sie noch die Java Cryptography Extension in Ihrer JVM, da diese nicht als Standard mitgeliefert wird. Informationen dazu finden Sie in unserer Dokumentation zum Thema JCE. Bitte beachten Sie, dass sich ihre Java-Installation in einem anderen Verzeichnis als /opt/java befinden kann.
Werte Verschlüsseln mit Spring Cloud CLI
Die Verschlüsselung ist im CLI bereits eingebaut und kann direkt verwendet werden. Mit dem Befehl
wird der übergebene Wert <WERT> mit dem Schlüssel <KEY> verschlüsselt und auf der Konsole ausgegeben.
Verwendung der Verschlüsselten Werte
Um die verschlüsselten Werte in der application.properties einzutragen, müssen diese mit dem Präfix {cipher} versehen werden. Innerhalb der Datei sähe das dann so aus:
spring.rabbitmq.password={cipher}b8c9d453360251661949767f1b4d103329637491082e976c411b7bcd4c403299
Da für die Entschlüsselung der mit {cipher} verschlüsselten Werte noch ein <KEY> benötigt wird, muss dieser als Umgebungsvariable an den SecureConnector übergeben werden. Daher wäre ein vollständiger Aufruf für den Start des SecureConnectors mit Verschlüsselung folgender: