Chapter 5. Client SSL Connections 5.1. SSL Client Connections You need to define certain properties for each SSL mode. Important When connecting to the Red Hat JBoss Data Virtualization server with SSL enabled, you must use the "mms" protocol, instead of "mm" in the JDBC connection URL: There are two different sets of properties that a client can configure to enable 1-way or 2-way SSL. The first option is to use Java SSL properties. These are standard Java defined system properties to configure the SSL under any JVM. Red Hat JBoss Data Virtualization is not unique in its use of SSL. Provide the following system properties to the client VM process. Here is one-way SSL: Here is two-way SSL: The second option is to use JDV-specific properties. Use this option when the above "javax" based properties are already in use by the host process. For example if your client application is a Tomcat process that is configured for HTTPS protocol and the above Java-based properties are already in use, and importing Teiid-specific certificate keys into those HTTPS certificate keystores is not allowed. In this scenario, a different set of JDV-specific SSL properties can be set as system properties or defined inside the teiid-client-settings.properties file. A sample teiid-client-settings.properties file can be found inside the teiid-client-[VERSION]-redhat-[VERSION].jar file at the root called teiid-client-settings.orig.properties . Extract this file, make a copy, change the property values required for the chosen SSL mode, and place this file in the client application's classpath before the teiid-client-[VERSION]-redhat-[VERSION].jar file. Here are the SSL properties and definitions that can be set in a teiid-client-settings.properties file:

Commands:
jdbc:teiid:<myVdb>@mms://<host>:<port>
-Djavax.net.ssl.trustStore=<dir>/server.truststore (required) -Djavax.net.ssl.trustStorePassword=<password> (optional) -Djavax.net.ssl.keyStoreType (optional)
-Djavax.net.ssl.keyStore=<dir>/client.keystore (required) -Djavax.net.ssl.keyStrorePassword=<password> (optional) -Djavax.net.ssl.trustStore=<dir>/server.truststore (required) -Djavax.net.ssl.trustStorePassword=<password> (optioanl) -Djavax.net.ssl.keyStroreType=<keystore type> (optional)
######################################## SSL Settings ######################################## # The key store type. Defaults to JKS # org.teiid.ssl.keyStoreType=JKS # The key store algorithm, defaults to the system property "ssl.TrustManagerFactory.algorithm" # #org.teiid.ssl.algorithm= # The classpath or filesystem location of the key store. # This property is required only if performing 2-way authentication that requires a specific private key. # #org.teiid.ssl.keyStore= # The key store password (not required) # #org.teiid.ssl.keyStorePassword= # The key alias(not required, if given named certificate is used) # #org.teiid.ssl.keyAlias= # The key password(not required, used if the key password is different than the keystore password) # #org.teiid.ssl.keyPassword= # The classpath or filesystem location of the trust store. # This property is required if performing 1-way authentication that requires trust not provided by the system defaults. # #org.teiid.ssl.trustStore= # The trust store password (not required) # #org.teiid.ssl.trustStorePassword= # The cipher protocol, defaults to TLSv3 # org.teiid.ssl.protocol=TLSv1 # Whether to allow anonymous SSL (the TLS_DH_anon_WITH_AES_128_CBC_SHA cipher suite) defaults to true # org.teiid.ssl.allowAnon=true 1-way SSL org.teiid.ssl.trustStore=<dir>/server.truststore (required) 2-way SSL org.teiid.ssl.keyStore=<dir>/client.keystore (required) org.teiid.ssl.trustStore=<dir>/server.truststore (required)