跳到主要内容

数据连接属性-与SSL相关

以下是与SSL相关的数据连接属性的总结。根据启用的属性(设置为true),某些属性可能会覆盖其他属性。有关详细信息,请参阅Solace PubSub+ JMS文档。

SSL证书验证

指示API是否应使用信任库中的受信任证书验证服务器证书。使用JKS或PKCS12证书文件作为信任库。如果要使用SSL证书主机验证和SSL证书日期验证属性,必须将此属性设置为true

  • 支持版本:Solace PubSub+及更高版本
  • 类型:布尔值
  • 格式:[true|false]
  • 默认值:true

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_VALIDATE_CERTIFICATE, true);
JNDI属性文件Solace_JMS_SSL_ValidateCertificate=false

SSL证书验证属性

SSL证书日期验证

指示会话连接是否应在收到过期证书或尚未使用的证书时失败。如果SSL证书验证设置为false,则不会执行日期验证(覆盖此属性)。

  • 支持版本:Solace PubSub+ 6.0及以上版本
  • 类型:布尔值
  • 格式:[true|false]
  • 默认值:true

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_VALIDATE_CERTIFICATE_DATE, true);
JNDI属性文件Solace_JMS_SSL_ValidateCertificateDate=true

SSL证书日期验证属性

SSL证书主机验证

指示会话连接是否验证服务器的X.509证书中的主题备用名称是否与URL属性中指定的主机匹配。如果X.509证书中没有主题备用名称部分,则检查主题字段中的通用名称。此设置默认为true(推荐设置)。需要注意的是,SSL证书验证属性覆盖此属性,因此,如果SSL证书验证设置为false,则不会执行SSL证书主机验证。

  • 支持版本:Solace PubSub+ 9.7及以上版本
  • 类型:布尔值
  • 格式:[true|false]
  • 默认值:true

根据RFC 2818和RFC 5280,Solace不建议将此属性设置为false。将属性设置为false意味着不执行使用主题备用名称的服务器证书验证。

SSL证书主机验证属性

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_VALIDATE_CERTIFICATE_HOST, true);
JNDI属性文件Solace_JMS_SSL_ValidateCertificateHost=true

SSL密码套件

用于与事件代理协商安全连接的TLS/SSL密码套件。

密码套件是定义用于身份验证、密钥协商、加密和完整性保护的安全算法和密钥大小的组合。可以使用其JSSE名称或OpenSSL名称指定密码套件。

Solace JMS API支持以下密码套件(显示JSSE名称,OpenSSL名称在括号中):

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384(ECDHE-RSA-AES256-SHA384)

此密码套件需要Java 7或更高版本,并且需要安装JCE无限制强度管辖策略文件。

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(ECDHE-RSA-AES256-SHA)

此密码套件需要Java 7或更高版本,并且需要安装JCE无限制强度管辖策略文件。

  • TLS_RSA_WITH_AES_256_CBC_SHA256(AES256-SHA256)

此密码套件需要Java 7或更高版本,并且需要安装JCE无限制强度管辖策略文件。

  • TLS_RSA_WITH_AES_256_CBC_SHA(AES256-SHA)

此密码套件需要安装JCE无限制强度管辖策略文件。

  • TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA(ECDHE-RSA-DES-CBC3-SHA)

此密码套件需要Java 7或更高版本。

  • SSL_RSA_WITH_3DES_EDE_CBC_SHA(DES-CBC3-SHA)
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA(ECDHE-RSA-AES128-SHA)

此密码套件需要Java 7或更高版本。

  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256(ECDHE-RSA-AES128-SHA256)

此密码套件需要Java 7或更高版本。

  • TLS_RSA_WITH_AES_128_CBC_SHA256(AES128-SHA256)

此密码套件需要Java 7或更高版本。

  • TLS_RSA_WITH_AES_128_CBC_SHA(AES128-SHA)

此属性适用于JNDI和数据连接。

  • 支持版本:Solace PubSub+ 6.0及以上版本
  • 类型:字符串
  • 格式:密码套件的逗号分隔列表
  • 默认值:所有支持的密码套件

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_CIPHER_SUITE, "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA ");
JNDI属性文件Solace_JMS_SSL_CipherSuites=SSL_RSA_WITH_RC4_128_SHA

SSL密码套件属性

SSL连接降级为

设置TLS/SSL连接在客户端认证后将降级为的传输协议。此属性适用于JNDI和数据连接。

  • 支持版本:Solace PubSub+ 7.2及以上版本
  • 类型:字符串
  • 允许值:"PLAIN_TEXT"

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_CONNECTION_DOWNGRADE_TO, “PLAIN_TEXT”);
JNDI属性文件Solace_JMS_SSL_ConnectionDowngradeTo=PLAIN_TEXT

SSL连接降级为属性

SSL排除协议

不应使用的加密协议的逗号分隔列表。sslv3tlsv1tlsv1.1tlsv1.2是有效的条目。指定多个协议时,顺序不重要。

  • 支持版本:Solace PubSub+及更高版本
  • 类型:字符串
  • 格式:协议名称的逗号分隔列表
  • 默认值:""

tlsv1.1tlsv1.2需要Java 7或更高版本。

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_EXCLUDED_PROTOCOLS, "tlsv1");
JNDI属性文件Solace_JMS_SSL_ExcludedProtocols=tlsv1

SSL排除协议属性

SSL内部归一化密钥库格式

此属性指定内部归一化密钥库的格式。它允许您覆盖用于处理SSL密钥库中的密钥的内部归一化密钥库的类型,如果默认格式有问题。

此属性适用于JNDI和数据连接。

  • 支持版本:Solace PubSub+ 7.2.1及以上版本
  • 类型:字符串
  • 格式:通常是标准内置格式之一,如“jks”或“pkcs12”
  • 默认值:""。如果未指定,则使用SSL密钥库的类型。
属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_KEY_STORE_NORMALIZED_FORMAT, “pkcs12”);
JNDI属性文件Solace_JMS_SSL_KeyStoreNormalizedFormat =pkcs12
系统系统属性 -Djavax.net.ssl.keyStoreNormalizedType=PKCS12

SSL密钥库格式

SSL密钥库

此属性指定用于URL或路径格式的密钥库。密钥库包含客户端的私钥和证书,用于在TLS/SSL握手期间验证客户端的身份。如果认证方案是客户端证书认证,则必须设置此属性。

此属性适用于JNDI和数据连接。

  • 支持版本:Solace PubSub+ 6.1及以上版本
  • 类型:字符串
  • 格式:密钥库文件的URL或路径
  • 默认值:""

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_KEY_STORE, "mykeystore.jks");
JNDI属性文件Solace_JMS_SSL_KeyStore=myKeyStore.jks
系统-Djavax.net.ssl.keyStore=myKeyStore.jks

SSL密钥库属性

SSL密钥库格式

此属性指定给定密钥库的格式。它适用于JNDI和数据连接。

  • 支持版本:Solace PubSub+ 6.1及以上版本
  • 类型:字符串
  • 格式:JKS或PKCS12
  • 默认值:"jks"

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_KEY_STORE_FORMAT, "pkcs12");
JNDI属性文件Solace_JMS_SSL_KeyStoreFormat=pkcs12
系统-Djavax.net.ssl.keyStoreType=PKCS12

SSL密钥库格式属性

SSL密钥库密码

此属性指定用于验证密钥库完整性的密钥库密码。

此属性适用于JNDI和数据连接。

  • 支持版本:Solace PubSub+及更高版本
  • 类型:字符串
  • 格式:字符串
  • 默认值:""

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_KEY_STORE_PASSWORD, "password");
JNDI属性文件Solace_JMS_SSL_KeyStorePassword=mypass
系统-Djavax.net.ssl.keyStorePassword=mypass

SSL密钥库密码属性

SSL私钥别名

此属性指定用于认证的密钥库中的哪个私钥。当使用包含多个私钥条目的密钥库时,此属性是必需的。

此属性适用于JNDI和数据连接。

  • 支持版本:Solace PubSub+及更高版本
  • 类型:字符串
  • 格式:字符串
  • 默认值:""

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_PRIVATE_KEY_ALIAS, "alias");
JNDI属性文件Solace_JMS_SSL_PrivateKeyAlias=alias

SSL私钥别名属性

SSL私钥密码

此属性指定用于认证的密钥库中的哪个私钥。当使用包含多个私钥条目的密钥库时,此属性是必需的。

此属性适用于JNDI和数据连接。

  • 支持版本:Solace PubSub+ 6.1及以上版本
  • 类型:字符串
  • 格式:字符串
  • 默认值:""

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_PRIVATE_KEY_PASSWORD, "password");
JNDI属性文件Solace_JMS_SSL_PrivateKeyPassword=password

SSL私钥密码属性

SSL协议

要使用的加密协议的逗号分隔列表。支持sslv3tlsv1tlsv1.1tlsv1.2。指定多个协议时,顺序不重要。

  • 支持版本:Solace PubSub+ 6.0及以上版本

  • 类型:字符串

  • 格式:协议名称的逗号分隔列表

  • 默认值:"sslv3,tlsv1,tlsv1.1,tlsv1.2"

  • 从Solace PubSub+ 7.1开始,建议使用“SSL排除协议”属性。您不能同时使用“SSL协议”和“SSL排除协议”。请参阅SSL排除协议。

    • tlsv1.1tlsv1.2需要Java 7或更高版本。

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_PROTOCOL, "tlsv1");
JNDI属性文件Solace_JMS_SSL_Protocol=tlsv1

SSL协议属性

SSL信任库

要使用的信任库文件。如果SSL证书验证属性设置为true,则此属性是必需的。

  • 支持版本:Solace PubSub+ 6.0及以上版本
  • 类型:字符串
  • 格式:信任库文件的URL或路径
  • 默认值:""

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
系统-Djavax.net.ssl.trustStore=myTrustStore.jks
JNDI属性文件Solace_JMS_SSL_TrustStore=myTrustStore.jks
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_TRUST_STORE, "mytruststore.jks");

SSL信任库属性

SSL信任库格式

指示为SSL信任库属性提供的信任库使用的格式。

  • 支持版本:Solace PubSub+ 6.0及以上版本
  • 类型:字符串
  • 格式:"jks""pkcs12"
  • 默认值:"jks"

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_TRUST_STORE_FORMAT, "pkcs12");
JNDI属性文件Solace_JMS_SSL_TrustStoreFormat=pkcs12
系统-Djavax.net.ssl.keyStoreType=PKCS12

SSL信任库格式属性

SSL信任库密码

为SSL信任库属性提供的信任库的密码。如果SSL证书验证属性设置为true,则此属性是必需的。

  • 支持版本:Solace PubSub+ 6.0及以上版本
  • 类型:字符串
  • 格式:字符串
  • 默认值:""

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_TRUST_STORE_PASSWORD, "password");
JNDI属性文件Solace_JMS_SSL_TrustStorePassword=mypass
系统-Djavax.net.ssl.trustStorePassword=mypass

SSL信任库密码属性

SSL受信任通用名称列表

最多16个可接受的通用名称列表,用于在服务器证书中匹配。如果没有提供通用名称(默认情况下),则意味着没有通用名称验证,所有通用名称都可接受。

如果SSL证书验证设置为false或SSL服务器证书验证设置为true,则不执行通用名称验证。

  • 支持版本:Solace PubSub+ 6.0及以上版本
  • 类型:字符串
  • 格式:通用名称的逗号分隔列表

首尾空格被视为通用名称的一部分,并不会被忽略。

  • 默认值:""

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_TRUSTED_COMMON_NAME_LIST, "acme.com,www.acme.com");
JNDI属性文件Solace_JMS_SSL_TrustedCommonNameList=acme.com,www.acme.com

SSL受信任通用名称列表