Secure Socket Layer
此功能部件启用对安全套接字层 (SSL) 连接的支持。除非启用 ssl-1.0 功能部件,否则不会启动 secureHTTPS 侦听器。Liberty 概要文件提供哑元密钥库和哑元信任库,它们与 WebSphere Application Server 的先前版本提供的哑元密钥库和哑元信任库相同。
启用此功能部件
要启用安全套接字层功能部件,请在 server.xml 文件的 featureManager 元素内添加以下元素声明:
<feature>ssl-1.0</feature>
受支持的 Java™ 版本
- JavaSE-1.6
- JavaSE-1.7
- JavaSE-1.8
开发依赖于此功能部件的功能部件
如果您要开发依赖于安全套接字层功能部件的功能部件,请在新功能部件的功能部件清单文件的 Subsystem-Content 头中添加以下项:
com.ibm.websphere.appserver.ssl-1.0; type="osgi.subsystem.feature"
启用此功能部件的功能部件
此功能部件提供的 SPI 包
功能部件配置元素
可在 server.xml 文件中使用以下元素以配置安全套接字层功能部件:
- channelfw
- 定义通道和链管理设置。
属性名称 数据类型 缺省值 描述 chainQuiesceTimeout 具有毫秒精度的时间段 30s 停顿链时要等待的缺省时间量。. 指定后跟时间单位的正整数,时间单位可以是小时 (h)、分钟 (m)、秒 (s) 或毫秒 (ms)。例如,以 500ms 的形式指定 500 毫秒。可将多个值包括在单个条目中。例如,1s500ms 相当于 1.5 秒。 chainStartRetryAttempts int 最小值:0
60 要为每个链进行重试尝试的次数。 chainStartRetryInterval 具有毫秒精度的时间段 5s 在启动重试之间的时间间隔。. 指定后跟时间单位的正整数,时间单位可以是小时 (h)、分钟 (m)、秒 (s) 或毫秒 (ms)。例如,以 500ms 的形式指定 500 毫秒。可将多个值包括在单个条目中。例如,1s500ms 相当于 1.5 秒。 warningWaitTime 具有毫秒精度的时间段 10s 通知缺少工厂配置之前要等待的时间量。. 指定后跟时间单位的正整数,时间单位可以是小时 (h)、分钟 (m)、秒 (s) 或毫秒 (ms)。例如,以 500ms 的形式指定 500 毫秒。可将多个值包括在单个条目中。例如,1s500ms 相当于 1.5 秒。 - keyStore
- 用于 SSL 加密的安全证书的存储库。
属性名称 数据类型 缺省值 描述 fileBased 布尔型 true 如果密钥库基于文件,请指定 true;如果密钥库的类型是 SAF 密钥环或硬件密钥库,请指定 false。 id 字符串 唯一配置标识。 location 文件路径 ${server.output.dir}/resources/security/key.jks 密钥库文件的绝对或相对路径。如果提供了相对路径,那么服务器将尝试在 ${server.config.dir}/resources/security 目录中查找该文件。请将密钥库文件用于基于文件的密钥库,将密钥环名称用于 SAF 密钥环,或者将设备配置文件用于硬件加密设备。在 SSL 最小配置中,会将该文件的位置假定为 ${server.config.dir}/resources/security/key.jks。 password 可逆向编码的密码(字符串) 用于装入密钥库文件的密码。可采用明文或编码格式存储该值。请使用 securityUtility 工具来对该密码进行编码。 pollingRate 具有毫秒精度的时间段 500ms 服务器检查密钥库文件更新的速率。. 指定后跟时间单位的正整数,时间单位可以是小时 (h)、分钟 (m)、秒 (s) 或毫秒 (ms)。例如,以 500ms 的形式指定 500 毫秒。可将多个值包括在单个条目中。例如,1s500ms 相当于 1.5 秒。 readOnly 布尔型 false 如果密钥库要由服务器用于读取,请指定 true;如果服务器将对密钥库执行写操作,请指定 false。 type string jks 受目标 SDK 支持的密钥库类型。 updateTrigger - mbean
- polled
- disabled
mbean 密钥库文件更新方法或触发器。 - mbean
- 仅当外部程序(例如集成开发环境或管理应用程序)调用的 MBean 提示进行更新时,服务器才会更新密钥库。
- polled
- 服务器将按照轮询时间间隔扫描密钥库文件更改,并在密钥库文件具有可检测更改时进行更新。
- disabled
- 禁用所有更新监视。在服务器处于运行状态时,将不会应用对密钥库文件的更改。
- ssl
- 具有标识、已定义的密钥库以及可选信任库的 SSL 指令表。
属性名称 数据类型 缺省值 描述 clientAuthentication 布尔型 false 指定是否启用客户机认证。如果设置为 true,那么需要进行客户机认证,并且客户机必须提供证书以获得服务器信任。 clientAuthenticationSupported 布尔型 false 指定客户机认证是否受支持。如果设置为 true,那么客户机认证支持意味着当客户机提供证书时,服务器将检查该客户机是否受信任。 clientKeyAlias string 指定密钥库中用作密钥的证书的别名,该密钥将发送至已启用客户机认证的服务器。仅当密钥库具有多个密钥条目时,才需要此属性。 enabledCiphers string 指定定制的密码列表。请使用空格来分隔列表中的每个密码。受支持的密码将取决于所使用的底层 JRE。请检查 JRE 以获取有效密码。 id 字符串 唯一配置标识。 keyStoreRef string 包含 SSL 指令表的密钥条目的密钥库。此属性为必需项。 securityLevel - MEDIUM
- CUSTOM
- HIGH
- LOW
HIGH 指定 SSL 握手所使用的密码套件组。HIGH 表示 3DES 和 128 位及更多位的密码,MEDIUM 表示 DES 和 40 位密码,LOW 表示不加密的密码。如果使用了 enabledCiphers 属性,那么将忽略安全级别列表。 - MEDIUM
- %repertoire.MEDIUM
- CUSTOM
- %repertoire.CUSTOM
- HIGH
- 密码套件 3DES 和 128 位及更多位
- LOW
- %repertoire.LOW
serverKeyAlias string 指定密钥库中用作服务器密钥的证书的别名。仅当密钥库具有多个密钥条目时,才需要此属性。 sslProtocol string SSL 握手协议。可以在底层 JRE 的 Java 安全套接字扩展 (JSSE) 提供程序的文档中找到协议值。使用 IBM JRE 时,缺省值为 SSL_TLS;使用 Oracle 时,缺省值为 SSL。 trustStoreRef string ${keyStoreRef} 包含由 SSL 指令表用于签名验证的可信证书条目的密钥库。此属性为可选项。如果未指定,那么会将同一密钥库用于密钥条目和可信证书条目。 - sslDefault
- SSL 服务的缺省指令表。
属性名称 数据类型 缺省值 描述 sslRef string defaultSSLConfig SSL 指令表的名称,该指令表将用作缺省 SSL 指令表。如果未指定缺省 SSL 指令表,那么将使用名为 defaultSSLConfig 的缺省 SSL 指令表。 - sslOptions
- 用于传输的 SSL 协议配置。
属性名称 数据类型 缺省值 描述 id 字符串 唯一配置标识。 sessionTimeout 具有秒精度的时间段 1d 用于等待读或写请求在套接字上完成的时间量。特定于协议的超时将覆盖此值。. 指定后跟时间单位的正整数,时间单位可以是小时 (h)、分钟 (m) 或秒 (s)。例如,以 30s 的形式指定 30 秒。可将多个值包括在单个条目中。例如,1m30s 相当于 90 秒。 sslRef string 缺省 SSL 配置指令表。缺省值为 defaultSSLSettings。 suppressHandshakeErrors 布尔型 false 禁用记录 SSL 握手错误。SSL 握手错误会在正常操作期间发生,但是当 SSL 行为异常时,这些消息将很有用。 - tcpOptions
- 定义 TCP 协议设置。
属性名称 数据类型 缺省值 描述 id 字符串 唯一配置标识。 inactivityTimeout 具有毫秒精度的时间段 60s 用于等待读或写请求在套接字上完成的时间量。特定于协议的超时将覆盖此值。. 指定后跟时间单位的正整数,时间单位可以是小时 (h)、分钟 (m)、秒 (s) 或毫秒 (ms)。例如,以 500ms 的形式指定 500 毫秒。可将多个值包括在单个条目中。例如,1s500ms 相当于 1.5 秒。 soReuseAddr 布尔型 true 允许立即重新绑定到没有任何处于活动状态的侦听器的端口。