- Dieses Thema hat 1 Antwort und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 3 Wochen, 1 Tag von Franklin214.
- Beitrag
-
- 28. Oktober 2024 um 14:13 Uhr
Hallo,wir versuchen aktuell eine MSSQL Server Datenbank anzubinden, bei der eine SSL Verbindung Pflicht ist. Benutzt wird die aktuellste Version des offiziellen Microsoft SQLServerDrivers (12.8.1)
Im Connection String ist dementsprechend die Parameter “encrypt=true” gesetzt. Die Verbindung schlägt allerdings (nachvollziehbarerweise) fehl, mit dem Fehler
“encrypt” property is set to “true” and “trustServerCertificate” property is set to “false” but the driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption – unable to find valid certification path to requested target”.
Es muss also noch das Zertifikat im Truststore als vertrauenswürdig hinterlegt werden. Wir sind davon ausgegangen, dass das analog zum HTTP Adapter funktioniert, sprich direkt im Manager unter “Zertifikate” das Zertifikat hinterlegen und dann im Adapter konfigurieren. Allerdings gibts beim Datenbankdapter gar keine Property für das SSL Zertifikat analog dem HTTP Adapater.
Ein Workaround ist es aktuell, das zusätzliche Property “trustServerCertificate=true” zu setzen, um die komplette Zertifikatsvalidierung auszuschalten, was natürlich auf Dauer nicht sinnvoll ist.
Eine andere Alternative, die wir aber noch nicht validiert haben wäre es, einen komplett eigenen Truststore anzulegen und diesen mit dem “trustStore=xx” Parameter zu referenzieren. Hier wäre ja aber eigentlich unsere Erwartung, dass uns der Transconnect interne Zertifikatsmanager genau diese Arbeit abnehmen würde.
Konkrete Frage also: Kann in unserer aktuellen Transconnect Version (3.7.4) der Datenbankadapter für SSL konfiguriert werden?
00
- Antworten
-
- 29. Oktober 2024 um 10:46 Uhr
Hallo Julian,leider ist eine Hinterlegung des Zertifikats im Transconnect beim Adaptertyp “Datenbank” derzeit nicht möglich. Die Entwicklung prüft nun noch einmal, ob diese Hinterlegung auch bei DB-Adaptern möglich und sinnvoll ist.
Eine Anbindung einer Datenbank mit SSL-Pflicht ist dennoch möglich.
Mögliche aktuelle Optionen sind:
- Vertrauenswürdige Zertifizierungsstelle (CA): Lassen Sie das SQL Server-Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle ausstellen. Dies stellt sicher, dass das Zertifikat von allen beteiligten Parteien anerkannt wird.
- Eigenen Truststore konfigurieren: Richten Sie den Truststore auf dem Client ein und konfigurieren Sie die Verbindungseigenschaften entsprechend. Geben Sie dabei den Truststore an, um eine sichere Kommunikation zu gewährleisten.
<code class="language-java">"jdbc:sqlserver://localhost:1433;" + "databaseName=ExampleDB;" + "encrypt=true;" + "trustStore=path/to/your/truststore.jks;" + "trustStorePassword=yourTrustStorePassword;";
- TrustServerCertificate auf true setzen: Setzen Sie die Eigenschaft
TrustServerCertificate
auftrue
, um dem Server-Zertifikat zu vertrauen, ohne eine direkte Prüfung durchzuführen. Trotz dieser Konfigurationen ist eine SSL-Verschlüsselung der Verbindung weiterhin gewährleistet ist. Auch ohne ein Zertifikat auf der Clientseite wird die Verbindung verschlüsselt, da der Server ein Zertifikat bereitstellt, das zur Verschlüsselung der Datenübertragung verwendet wird.
Um die SSL-Verschlüsselung in einer JDBC-Verbindung im TRANSCONNECT zu aktivieren, können Sie die folgenden Verbindungseigenschaften verwenden:
<code class="language-java">String connectionUrl = "jdbc:sqlserver://localhost:1433;" + "databaseName=ExampleDB;" + "encrypt=true;" Wahlweise dann mit eigenem Truststore:
+ "trustStore=path/to/your/truststore.jks;" + "trustStorePassword=yourTrustStorePassword;"
oder mit dem Vertrauen des Server-Zertifikats:+ "trustServerCertificate=true;"
Ich hoffe, dass diese Informationen hilfreich sind. Bei Fragen oder Problemen stehen wir Ihnen gerne zur Verfügung.
Beste Grüße
Frank SeiterProfessional Service
10
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.