3. Security and Validation

ssl

Version

Configures inbound or outbound SSL connections.

Syntax

ssl:
'$ref': <string>
acme: {}
algorithm: <string>
ciphers: <string>
clientAuth: <string>
endpointIdentificationAlgorithm: <string>
ignoreTimestampCheckFailure: <boolean>
key: {}
keyGenerator: {}
keystore: {}
protocol: <string>
protocols: <string>
serverName: <string>
showSSLExceptions: <boolean>
trust: {}
truststore: {}
useAsDefault: <boolean>
useExperimentalHttp2: <boolean>
ssl:
  '$ref': <string>
  acme: {}
  algorithm: <string>
  ciphers: <string>
  clientAuth: <string>
  endpointIdentificationAlgorithm: <string>
  ignoreTimestampCheckFailure: <boolean>
  key: {}
  keyGenerator: {}
  keystore: {}
  protocol: <string>
  protocols: <string>
  serverName: <string>
  showSSLExceptions: <boolean>
  trust: {}
  truststore: {}
  useAsDefault: <boolean>
  useExperimentalHttp2: <boolean>

Sample

<serviceProxy port="443">
<ssl>
<keystore
location="../../conf/membrane.jks"
password="secret" keyPassword="secret" />

<truststore
location="../../conf/membrane.jks" password="secret" />

</ssl>
<wsdlRewriter protocol="https" />
<target host="thomas-bayer.com" />
</serviceProxy><serviceProxy port="8080">
<path>/svn</path>
<target host="predic8.com" port="443">
<ssl />
</target>
</serviceProxy>
<serviceProxy port="443">
  <ssl>
	<keystore
	  location="../../conf/membrane.jks"
	  password="secret" keyPassword="secret" />
	<truststore
	  location="../../conf/membrane.jks" password="secret" />
  </ssl>
  <wsdlRewriter protocol="https" />
  <target host="thomas-bayer.com" />
</serviceProxy><serviceProxy port="8080">
  <path>/svn</path>
  <target host="predic8.com" port="443">
	<ssl />
  </target>
</serviceProxy>

Attributes

NameRequiredDefaultDescriptionExamples
$reffalse-Reference a component defined under components.-
algorithmfalsejava defaultgetDefaultAlgorithm()SunX509
ciphersfalseall system default ciphersSpace separated list of ciphers to allow. getSupportedCipherSuites()TLS_ECDH_anon_WITH_RC4_128_SHA
clientAuthfalsenot setEither not set (=no), or want or need.need
endpointIdentificationAlgorithmfalseHTTPSSee setEndpointIdentificationAlgorithm().-
ignoreTimestampCheckFailurefalse---
protocolfalseTLSSSLContext.getInstance()-
protocolsfalseTLS*SSLSocket.setEnabledProtocols()-
serverNamefalsesame as target hostname.Setting the serverName tells Java to use the SNI (...) on outbound TLS connections to indicate to the TLS server, which hostname the client wants to connect to.-
showSSLExceptionsfalsetrueTells Membrane to show SSL exceptions in its log-
useAsDefaultfalsetruewhether to use the SSLContext built from this SSLParser when no SNI header was transmitted.-
useExperimentalHttp2falsefalsewhether to enable receiving HTTP/2 requests. (experimental)-

Child Structure

ElementCardinalityDescription
acme0..1Configures an ACME (RFC 8555) client, e.g. to retrieve TLS certificates from Let's Encrypt.
key0..1Used to manually compose the keystore.
keyGenerator0..1Used to dynamically generate a key for the incoming connection on the fly.
keystore0..1Configuration element for a keystore holding private keys and certificates.
trust0..1Used to manually compose the truststore.
truststore0..1Configuration element for a truststore containing trusted CA certificates.

Can be used in