![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
SSL 伪指令
安全套接字层 (SSL) 伪指令是用于控制 IBM® HTTP Server 中的 SSL 功能的配置参数。
可以在 IBM HTTP Server 的 <virtualHost> 节中或者以全局方式在任何 <virtualHost> 节的外部指定许多安全套接字层 (SSL) 伪指令。
在这两个上下文中有效的大多数伪指令不会从全局配置中复制或合并到虚拟主机配置中,但以下伪指令除外:SSLEnable、SSLDisable、KeyFile、SSLServerCert、SSLTrace、SSLv2Timeout 和 SSLv3Timeout。对于在启用了 SSL 的虚拟主机作用域中有效的大多数其他伪指令,您必须在启用了 SSL 的虚拟主机中显式指定这些伪指令,这些伪指令才会生效。不会合并或复制的其他 SSL 伪指令的示例是 SSLCipherSpec 和 Uncompromisable。
对于在目录作用域(<Location>、<Directory> 或 htaccess)中指定的 SSL 伪指令,更一般的作用域中的配置节将合并到更具体的作用域的配置节中。此类别中的一些示例伪指令是 SSLCipherBan、SSLCipherRequire、SSLClientAuthRequire 和 SSLVersion。与先前所述的伪指令相比,这些伪指令不太常用。
除了以全局方式指定的 keyfile 伪指令以外,请尽可能避免合并配置。如果任何配置取决于多个配置作用域的合并,请始终测试该配置的结果。
- SSLOCSPResponderURL
- SSLOCSPEnable
- Keyfile 伪指令
- SSLAcceleratorDisable 伪指令
SSLAllowNonCriticalBasicConstraints 伪指令
SSLCacheDisable 伪指令
SSLCacheEnable 伪指令
SSLCacheErrorLog 伪指令
SSLCachePath 伪指令
SSLCachePortFilename 伪指令
SSLCacheTraceLog 伪指令
- SSLCipherBan 伪指令
- SSLCipherRequire 伪指令
- SSLCipherSpec 伪指令
- SSLClientAuth 伪指令
- SSLClientAuthGroup 伪指令
- SSLClientAuthRequire 伪指令
- SSLClientAuthVerify 伪指令
- SSLCRLHostname 伪指令(不推荐)
- SSLCRLPort 伪指令(不推荐)
- SSLCRLUserID 伪指令(不推荐)
- SSLDisable 伪指令
- SSLEnable 伪指令
- SSLFakeBasicAuth 伪指令
SSLFIPSDisable 伪指令
- SSLFIPSEnable 伪指令
- SSLInsecureRenegotiation 伪指令
- SSLPKCSDriver 伪指令
- SSLProtocolDisable 伪指令
- SSLProtocolEnable 伪指令
- SSLProxyEngine 伪指令
- SSLRenegotiation 伪指令
- SSLServerCert 伪指令
- SSLSNIMap
- SSLStashfile 伪指令
- SSLSuiteBMode
- SSLTrace 伪指令
SSLUnknownRevocationStatus
- SSLV2Timeout 伪指令
- SSLV3Timeout 伪指令
- SSLVersion 伪指令
SSLOCSPResponderURL
名称 | 描述 |
---|---|
语法 |
|
作用域 | 虚拟主机 |
缺省值 | 已禁用 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机一个实例 |
值 | 指向 OCSP 响应程序的标准 URL,例如 http://hostname:2560/。 |
即使配置了 CRL 检查,也会先执行 OCSP 检查,然后再执行任何 CRL 检查。仅当 OCSP 的结果未知或不确定时,才执行 CRL 检查。
设置了 SSLOCSPResponderURL 时,如果提供 SSL 客户机证书,那么 IBM HTTP Server 会使用所提供的 URL 来检查证书撤销状态。
SSLOCSPEnable
名称 | 描述 |
---|---|
语法 |
|
作用域 | 虚拟主机 |
缺省值 | 已禁用 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机允许一个实例 |
值 | 无 |
如果设置了 SSLOCSPEnable,并且 SSL 客户机证书链包含 AIA 扩展,那么 IBM HTTP Server 会与该 AIA 扩展所指示的 OCSP 响应程序联系,以检查客户机证书的撤销状态。
如果同时配置了 OCSP 和 CRL 检查,那么会先执行 OCSP 检查,然后再执行任何 CRL 检查。仅当 OCSP 检查的结果未知或不确定时,才执行 CRL 检查。
如果同时配置了 SSLOCSPEnable 和 SSLOCSPResponderURL,那么会先检查 SSLOCSPResponderURL 定义的响应程序。如果撤销状态未知或不确定,那么 IBM HTTP Server 会检查 SSLOCSPEnable 的 OCSP 响应程序。
Keyfile 伪指令
名称 | 描述 |
---|---|
语法 | ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
作用域 | 全局库和虚拟主机 |
缺省值 | 无 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机和全局服务器一个实例 |
值 | 密钥文件的文件名。
|
![[z/OS]](../images/ngzos.gif)
证书管理服务 (CMS)
CMS 或资源访问控制设施 (RACF®)
SSLAcceleratorDisable 伪指令
名称 | 描述 |
---|---|
语法 | SSLAcceleratorDisable |
作用域 | 虚拟和全局 |
缺省值 | 已启用加速设备 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机一个实例。 |
值 | 无。请将此伪指令放置在配置文件内的任何位置(包括放置在虚拟主机内)。初始化期间,如果系统确定机器上安装了加速设备,那么系统会使用该加速器来增大安全事务数。此伪指令不带有任何自变量。 |
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
SSLAllowNonCriticalBasicConstraints 伪指令
名称 | 描述 |
---|---|
语法 | SSLAllowNonCriticalBasicConstraints on|off |
作用域 | 全局服务器或虚拟主机 |
缺省值 | Off |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机和全局服务器一个实例 |
值 | 无。此伪指令更改证书验证算法的行为,以使签发者认证中心 (CA) 证书上的非关键基本约束扩展不会导致验证失败。这将支持与日本政府制定的 GPKI 规范的一个方面兼容,此方面与 RFC3280 相冲突。 注意: RFC3280 规定,在包含用于验证证书上的数字签名的公用密钥的所有 CA 证书中,此扩展必须显示为关键扩展。
|
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
SSLCacheDisable 伪指令
名称 | 描述 |
---|---|
语法 | SSLCacheDisable |
作用域 | 每个物理 Apache 服务器实例一个伪指令,仅在虚拟主机节外部启用。 |
缺省值 | 无 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 不允许。 |
值 | 无。 |
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
SSLCacheEnable 伪指令
名称 | 描述 |
---|---|
语法 | SSLCacheEnable |
作用域 | 每个物理 Apache 服务器实例一个伪指令,仅在虚拟主机节外部启用。 |
缺省值 | 无 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 不允许。 |
值 | 无。 |
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
SSLCacheErrorLog 伪指令
名称 | 描述 |
---|---|
语法 | SSLCacheErrorLog /usr/HTTPServer/logs/sidd_logg |
作用域 | 虚拟主机外部的服务器配置。 |
缺省值 | 无 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 不允许。 |
值 | 有效文件名。 |
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
SSLCachePath 伪指令
SSLCachePath 伪指令指定会话标识高速缓存守护程序的路径。除非使用多个 ServerRoot 或 -d 参数的多个 IHS 实例正在共享一个安装,否则不需要指定此伪指令。
当所使用的多个 IHS 实例具有备用服务器根目录时(如前面所述),应该使用此伪指令将路径处的此 IHS 实例指向单一安装根目录而不是缺省情况下使用的不同服务器根目录中的 bin/sidd 二进制文件。
使用多个实例时,没有任何实际理由要将 bin/sidd 二进制文件复制到别处,或者要使用此伪指令指定服务器根目录下安装的除 bin/sidd 之外的任何内容。在共享相同二进制文件的 IHS 实例之间,此伪指令的值不必不同。
名称 | 描述 |
---|---|
语法 | SSLCachePath /usr/HTTPServer/bin/sidd |
作用域 | 虚拟主机外部的服务器配置。 |
缺省值 | <server-root>/bin/sidd |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 不允许。 |
值 | 有效路径名。 |
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
SSLCachePortFilename 伪指令
名称 | 描述 |
---|---|
语法 | SSLCachePortFilename /usr/HTTPServer/logs/siddport |
作用域 | 虚拟主机外部的服务器配置。 |
缺省值 | 如果未指定此伪指令,但启用了高速缓存,那么服务器会尝试使用
<server-root>/logs/siddport 文件。 说明
|
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 不允许。 |
值 | 有效路径名。Web 服务器将在启动期间删除此文件;请勿使用现有文件名。 |
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
SSLCacheTraceLog 伪指令
名称 | 描述 |
---|---|
语法 | SSLCacheTraceLog /usr/HTTPServer/logs/sidd-trace.log |
作用域 | 虚拟主机外部的服务器配置。 |
缺省值 | 无。 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 不允许。 |
值 | 有效路径名。 |
SSLCipherBan 伪指令
名称 | 描述 |
---|---|
语法 | SSLCipherBan <cipher_specification> |
作用域 | 每个目录节多个实例。 |
缺省值 | 无。 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个目录节都允许。首选顺序是从上到下。 |
值 | 请参阅“SSL 密码规范”主题以获取值。 |
SSLCipherRequire 伪指令
名称 | 描述 |
---|---|
语法 | SSLCipherRequire <cipher_specification> |
作用域 | 每个目录节多个实例。 |
缺省值 | 无。 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个目录节都允许。 |
值 | 请参阅“SSL 密码规范”主题以获取值 |
SSLCipherSpec 伪指令
SSLCipherSpec 伪指令允许您在握手期间定制支持的 SSL 密码。您可以定制 SSL 密码集合以及 SSL 密码的首选顺序。
在分布式平台上,每个协议都有自己的已排序密码列表。受支持的协议为 SSL V2、SSL V3、TLS V1.0、TLS V1.1 和 TLS V1.2。
在 z/OS 上,只有两个已启用密码列表,一个列表适用于 SSL V2,另一个列表适用于其他协议。受支持的协议为 SSL V2、SSL V3 和
TLS V1.0。
SSL V2 密码缺省为没有密码,这意味着该协议被禁用。对于其他协议,缺省值为不包括空密码、导出密码和弱密码在内的 SSL 密码集合。
当您使用单自变量形式的 SSLCipherSpec 时,给定的密码将在它对其有效的所有协议中处于启用状态。对于每个协议,首次进行这种更改时,该协议的缺省密码将被废弃。
当您使用多自变量形式的 SSLCipherSpec 并将 SSL 协议的名称(或“ALL”)指定为第一个自变量时,可以使用已增强的语法,它具有以下优点:
- 多个密码可以与每个 SSLCipherSpec 实例一起列出
- 通过使用“-”作为密码名称的前缀,可以从已启用密码的当前集合中除去个别密码。
- 首次修改给定协议密码列表时,通过使用“+”作为密码名称的前缀,可以将给定密码添加至缺省值末尾,而不是替换缺省值。
如果您提供协议名称“ALL”,那么对每个密码名称指定的添加或除去操作将应用于该密码对其有效的每个协议。
一种特殊情况是,要使用单个命令清空所有密码列表,您可以使用 SSLCipherSpec ALL NONE。任何时候您不想使用缺省密码时,使用此命令都是一种启动配置的不错方式。
名称 | 描述 |
---|---|
![]() |
![]() |
![]() |
![]() |
作用域 | 服务器配置,虚拟主机。 |
缺省值 | 如果未指定任何值,那么服务器将使用所有可用的非空、非导出和非弱密码规范。 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 允许。首选顺序是从上到下,从第一个到最后一个。 |
![]() |
![]() |
![]() |
![]() |
密码名称的值 | 请参阅“SSL 密码规范”主题以获取值 |
示例 1 | 如果您只想选择几个密码,那么最好一开始就重置所有密码列表,然后添加您想要使用的密码:
|
示例 2 | 如果您想要使用大部分缺省值,但不想使用某个或某两个密码,那么可以将这些密码从它们当前所在的所有列表中除去:
|
SSLClientAuth 伪指令
名称 | 描述 |
---|---|
语法 | SSLClientAuth <level required> [crl] |
作用域 | 虚拟主机。 |
缺省值 | SSLClientAuth none |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机一个实例。 |
值 |
如果您指定值 0/无,那么无法使用 CRL 选项。 |
Required_reset | 服务器要求所有客户机都提供有效的证书,并且在未提供证书时,服务器向客户机发送 SSL 警报。这使客户机能够了解 SSL 失败与客户机证书相关,并导致浏览器重新提示您输入有关后续访问的客户机证书信息。此选项需要 GSKit V7.0.4.19 或更高版本,或者需要 z/OS V1R8 或更高版本。 |

- 必须配置静态 CRL 存储库 (SSLCRLHost),才支持检查 CRLDistributionPoint 字段中的其他 URI 格式。
- 如果证书使用 LDAP 或 HTTP URI 格式的 CertificateDistributionPoint 或 AIA 扩展,请确保 IBM HTTP Server 系统可以建立此类型的传出连接;您必须调整防火墙设置。
提供 SSLUnknownRevocationStatus 伪指令是为了应对以下情况:IBM HTTP Server 在与后端服务器通信时发生可恢复错误,并且 IBM HTTP Server 无法确定证书的撤销状态。缺省行为是继续处理握手,除非后端服务器可以成功指示该证书已被撤销。
只能查询显式配置的 LDAP 服务器以获取 CRL,并且在后端服务器不可访问时,SSL 握手将会失败。
SSLClientAuthGroup 伪指令
SSLClientAuthGroup 伪指令定义一个已命名的表达式组,此组包含特定的客户机证书“属性/值”对集合。此已命名组可以由 SSLClientAuthRequire 伪指令使用。客户机必须提供证书,并且在该证书通过此表达式之后,服务器才允许访问受保护资源。
名称 | 描述 |
---|---|
语法 | SSLClientAuthGroup group name attribute expression |
作用域 | 服务器配置,虚拟主机。 |
缺省值 | 无。 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 允许。 |
覆盖 | 无。 |
值 | 一个逻辑表达式,它由使用 AND、OR、NOT 和括号连接的属性检查组成。For example:
|
以下部分提供包含有效逻辑表达式的示例的描述。例如:SSLClientAuthGroup ((CommonName = "Fred Smith") OR (CommonName = "John Deere")) AND (Org = IBM) 表示除非客户机证书包含常见名 Fred Smith 或 John Deere,且组织是 IBM,否则不会为对象提供服务。属性检查的唯一有效比较运算符是等于和不等于(= 和 !=)。您可以使用 AND、OR 或 NOT(也即,&&、|| 和 !)来连接各个属性检查。使用 AND、OR 或 NOT 连接的任何比较都必须括在括号内。如果属性值包含非字母数字字符,那么必须使用引号定界该值。
长名称 | 短名称 |
---|---|
CommonName | CN |
Country | C |
E | |
IssuerCommonName | ICN |
IssuerEmail | IE |
IssuerLocality | IL |
IssuerOrg | IO |
IssuerOrgUnit | IOU |
IssuerPostalCode | IPC |
IssuerStateOrProvince | IST |
Locality | L |
Org | O |
OrgUnit | OU |
PostalCode | PC |
StateOrProvince | ST |
可以在此伪指令中使用长名称或短名称。
SSLClientAuthGroup IBMpeople Org = IBM)
或SSLClientAuthGroup
NotMNIBM (ST != MN) && (Org = IBM)
组名不能包含空格。请参阅 SSLClientAuthRequire 伪指令,以了解更多信息。
SSLClientAuthRequire 伪指令
SSLClientAuthRequire 伪指令指定在服务器允许访问受保护资源之前,必须针对客户机证书验证的属性值或属性值组。
名称 | 描述 |
---|---|
语法 | SSLClientAuthRequire attribute expression |
作用域 | 服务器配置,虚拟主机 |
缺省值 | 无。 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 允许。该函数通过“AND”连接这些伪指令。 |
覆盖 | AuthConfig |
值 | 一个逻辑表达式,它由使用 AND、OR、NOT 和括号连接的属性检查组成。For example:
|
如果您接收到的证书没有某个特定属性,那么不会进行该属性的匹配验证。即使指定的匹配值是 " ",这可能仍然不同于证书中根本没有该属性。如果 SSLClientAuthRequire 伪指令中指定的任何属性在证书中不存在,那么会导致请求被拒绝。
长名称 | 短名称 |
---|---|
CommonName | CN |
Country | C |
E | |
IssuerCommonName | ICN |
IssuerEmail | IE |
IssuerLocality | IL |
IssuerOrg | IO |
IssuerOrgUnit | IOU |
IssuerPostalCode | IPC |
IssuerStateOrProvince | IST |
Locality | L |
Org | O |
OrgUnit | OU |
PostalCode | PC |
StateOrProvince | ST |
可以在此伪指令中使用长名称或短名称。
用户指定特定客户机证书属性的逻辑表达式。如果您必须指定多组客户机证书属性值,那么可以在逻辑上将 AND、OR 或 NOT 用于多个表达式。使用 AND、OR 或 NOT 连接的任何比较都必须括在括号内。有效运算符包括“=”和“!=”。用户还可以指定使用 SSLClientAuthGroup 伪指令 配置的组名来配置属性组。
SSLClientAuthRequire
((CommonName="John Doe") || (StateOrProvince=MN)) && (Org
!=IBM)
或SSLClientAuthRequire
(group!=IBMpeople) && (ST=MN)
SSLClientAuthRequire (group
!= IBMpeople) && ("ST= MN")
请参阅 SSLClientAuthGroup 伪指令,以了解更多信息。SSLClientAuthVerify 伪指令
SSLClientAuthVerify 伪指令控制在接收到客户机证书,但该证书未能通过验证(例如,该证书已到期或被撤销)时,IBM HTTP Server 是否使请求失败。
名称 | 描述 |
---|---|
语法 | SSLClientAuthVerify statuscode|OFF |
作用域 | 全局服务器或虚拟主机。 |
缺省值 | 500 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个目录节一个实例。 |
值 | HTTP 响应状态码或 OFF |
将此伪指令与 SSLClientAuth Optional Noverify 配合使用将会提供用户友好的网页,而不是提供缺省浏览器错误消息。
如果您使用 SSLClientAuth Optional Noverify 配置了虚拟主机,那么在接收到客户机证书,但该证书未能通过验证(例如,该证书已到期或被撤销)时,可以建立 SSL 连接。
在 Location 或 Directory 之类的上下文中,使用此伪指令可以使通过该连接接收的请求失败并生成特定错误码,或者设置为 OFF 以正常处理这些请求。
通过提供该状态的定制错误文档,管理员可以控制向用户呈示的页面(例如,用于告知用户其证书无效并提供更多指示信息)。
如果错误文档是到同一虚拟主机中的另一 URL 的内部重定向,您必须确保该 URL 在其上下文中具有 SSLClientAuthVerify OFF,以使其也不会立即失败。下面是此场景的一个示例。
指定的状态码必须是 HTTP 中的有效响应状态,并且对 IBM HTTP Server 而言已知。值介于 100 与 599 之间,并且通常是在 RFC 或标准建议中定义的。如果您不确定,请在测试配置中尝试某个状态码,并使用 apachectl -t 了解该状态码是否有效。其他有效并且是不错选择的未使用代码包括 418、419、420 和 421。
因为客户机证书无效,因此,错误文档中没有任何包含客户机证书相关信息的可用环境变量。客户机证书验证失败的原因在 SSL_LAST_VALIDATION_ERROR 环境变量中提供。变量可以是 GSKVAL_ERROR_REVOKED_CERT 或 GSKVAL_ERROR_CERT_EXPIRED。如果证书有多个验证问题,所报告的原因通常是 GSKVAL_ERROR_CA_MISSING_CRITICAL_BASIC_CONSTRAINT。
每次客户机证书验证失败时,都会在错误日志中以 loglevel Error 记录两条消息。第二条消息包括原因,例如:
[Tue Jun 08 08:54:25 2010] [error] [client 9.37.243.128] [9e44c28] [731] SSL0208E: SSL Handshake Failed,
Certificate validation error. [9.37.243.128:60347 -> 9.37.243.67:443] [08:54:25.000223331]
[Tue Jun 08 08:54:25 2010] [error] [client 9.37.243.128] [9e44c28] [731] Certificate validation error
during handshake, last PKIX/RFC3280 certificate validation error was
GSKVAL_ERROR_CA_MISSING_CRITICAL_BASIC_CONSTRAINT
[9.37.243.128:60347 -> 9.37.243.67:443] [08:54:25.000223331]
<VirtualHost *:443
SSLClientAuth Optional Noverify
<Location />
SSLClientAuthVerify 419
</Location>
ErrorDocument 419 /error419.html
<Location /error419.html>
SSLClientAuthVerify OFF
</Location>
</VirtualHost>
SSLCRLHostname 伪指令(不推荐)
SSLCRLHostname 伪指令指定证书撤销列表 (CRL) 数据库所在的 LDAP 服务器的 TCP/IP 名称或地址。
名称 | 描述 |
---|---|
语法 | <SSLCRLHostName <TCP/IP name or address> |
作用域 | 全局服务器或虚拟主机。 |
缺省值 | 缺省情况下已禁用。 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机和全局服务器一个实例。 |
值 | LDAP 服务器的 TCP/IP 名称或地址 |
请将 SSLCRLHostname 伪指令与 SSLCRLPort、SSLCRLUserID 和 SSLStashfile 伪指令一起用于基于 LDAP 的 CRL 存储库的静态配置。仅当显式 CRLDistributionPoint X.509v3 证书扩展不存在或在该扩展中指定的服务器无响应(不可用)时,才有必要使用这些伪指令来查询基于 LDAP 的 CRL 存储库。
如果 CRLDistributionPoint 扩展存在于证书中且该扩展中指定的服务器有响应(可用),那么在 CRLDistributionPoint 中指定的 LDAP 服务器会被匿名地查询,而不使用这些伪指令。
SSLCRLPort 伪指令(不推荐)
SSLCRLPort 伪指令指定证书撤销列表 (CRL) 数据库所在的 LDAP 服务器端口。
名称 | 描述 |
---|---|
语法 | SSLCRL<port> |
作用域 | 全局服务器或虚拟主机。 |
缺省值 | 缺省情况下已禁用。 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机和全局服务器一个实例。 |
值 | LDAP 服务器的端口;缺省值 = 389。 |
请将 SSLCRLPort 伪指令与 SSLCRLUserID、SSLCRLHostname 和 SSLStashfile 伪指令一起用于基于 LDAP 的 CRL 存储库的静态配置。仅当显式 CRLDistributionPoint X.509v3 证书扩展不存在或在该扩展中指定的服务器无响应(不可用)时,才有必要使用这些伪指令来查询基于 LDAP 的 CRL 存储库。
如果 CRLDistributionPoint 扩展存在于证书中且该扩展中指定的服务器有响应(可用),那么在 CRLDistributionPoint 中指定的 LDAP 服务器会被匿名地查询,而不使用这些伪指令。
SSLCRLUserID 伪指令(不推荐)
ThSSLCRLUserID 伪指令指定要发送到证书撤销列表 (CRL) 数据库所在的 LDAP 服务器的用户标识。
名称 | 描述 |
---|---|
语法 | SSLCRLUserID <[prompt] <userid> |
作用域 | 全局服务器或虚拟主机。 |
缺省值 | 如果未指定用户标识,那么缺省值为匿名。 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机和全局服务器一个实例。 |
值 | LDAP 服务器的用户标识。使用 prompt 选项使 HTTP 服务器可以在启动时提示您输入用于访问 LDAP 服务器的密码。 |
请将 SSLCRLUserID 伪指令与 SSLCRLPort、SSLCRLHostname 和 SSLStashfile 伪指令一起用于基于 LDAP 的 CRL 存储库的静态配置。仅当显式 CRLDistributionPoint X.509v3 证书扩展不存在或在该扩展中指定的服务器无响应(不可用)时,才有必要使用这些伪指令来查询基于 LDAP 的 CRL 存储库。
如果 CRLDistributionPoint 扩展存在于证书中且该扩展中指定的服务器有响应(可用),那么在 CRLDistributionPoint 中指定的 LDAP 服务器会被匿名地查询,而不使用这些伪指令。
SSLDisable 伪指令
名称 | 描述 |
---|---|
语法 | SSLDisable |
作用域 | 全局服务器或虚拟主机。 |
缺省值 | 缺省情况下已禁用。 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机和全局服务器一个实例。 |
值 | 无。 |
SSLEnable 伪指令
名称 | 描述 |
---|---|
语法 | SSLEnable |
作用域 | 全局服务器或虚拟主机。 |
缺省值 | 缺省情况下已禁用。 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机和全局服务器一个实例。 |
值 | 无。 |
SSLFakeBasicAuth 伪指令
SSLFakeBasicAuth 伪指令启用伪基本认证支持。
名称 | 描述 |
---|---|
语法 | SSLFakeBasicAuth |
作用域 | 在目录节中,与 AuthName、AuthType 一起使用并且需要伪指令。 |
缺省值 | 无。 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个目录节一个实例。 |
值 | 无。 |
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
SSLFIPSDisable 伪指令
名称 | 描述 |
---|---|
语法 | SSLFIPSDisable |
作用域 | 虚拟和全局。 |
缺省值 | 缺省情况下已禁用。 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机和全局服务器一个实例。 |
值 | 无。 |
SSLFIPSEnable 伪指令
SSLFIPSEnable 伪指令启用联邦信息处理标准 (FIPS)。
此伪指令适用于分布式平台。

- 此伪指令仅在全局作用域中有效。
- 如果您更改此伪指令的值,那么必须停止然后启动 IBM HTTP Server 才能使新值生效。如果您重新启动,新值将不会生效。
名称 | 描述 |
---|---|
语法 | SSLFIPSEnable |
作用域 | 虚拟和全局。 |
缺省值 | 缺省情况下已禁用。 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机和全局服务器一个实例。 |
值 | 无。 |
SSLInsecureRenegotiation 伪指令
SSLInsecureRenegotiation 伪指令确定是否允许不安全(RFC5746 之前)的 SSL 重新协商。任何类型的 SSL 重新协商都不常见,因此不应将此伪指令从其缺省值 off 更改为其他值。
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
指定 on 时,将允许不安全的 SSL 重新协商。指定 off(缺省值)时,不允许不安全的 SSL 重新协商。
名称 | 描述 |
---|---|
语法 | SSLInsecureRenogotiation on|off |
作用域 | 虚拟主机 |
缺省值 | off |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机和全局服务器一个实例 |
值 | on|off |
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
SSLPKCSDriver 伪指令
SSLPKCSDriver 伪指令标识用于访问 PKCS11 设备的模块或驱动程序的标准名称。
名称 | 描述 |
---|---|
语法 | Fully qualified name to module used to access PKCS11 device>。如果该模块存在于用户路径中,那么只需指定模块名称。 |
作用域 | 全局服务器或虚拟主机。 |
缺省值 | 无。 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机和全局服务器一个实例。 |
值 | PKCS11 模块或驱动程序的路径和名称。 |
- nCipher
- AIX:/opt/nfast/toolkits/pkcs11/libcknfast.so
- HP:/opt/nfast/toolkits/pkcs11/libcknfast.sl
- Solaris:/opt/nfast/toolkits/pkcs11/libcknfast.so
- Windows:c:\nfast\toolkits\pkcs11\cknfast.dll
- IBM 4758
- AIX:/usr/lib/pkcs11/PKCS11_API.so
- Windows:$PKCS11_HOME\bin\nt\cryptoki.dll
- IBM 电子商务加密加速器
- AIX:/usr/lib/pkcs11/PKCS11_API.so
SSLProtocolDisable 伪指令
SSLProtocolDisable 伪指令使您能够指定一个或多个 SSL 协议,客户机无法将这些协议用于特定虚拟主机。此伪指令必须位于 <VirtualHost> 容器中。
名称 | 描述 |
---|---|
语法 | SSLProtocolDisable <protocolname> |
作用域 | 虚拟主机 |
缺省值 | 已禁用 注意: 使用其他方法时,缺省情况下 SSL V2 协议处于禁用状态。
|
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机允许多个实例。 |
值 | 为此伪指令提供了下列可能的值。
|
值 TLS 将禁用所有 TLS 版本。
值 TLSv1 将禁用 TLS V1.0。
值
TLSv1.1 将禁用 TLS V1.1。
值 TLSv1.2 将禁用 TLS V1.2。
<VirtualHost *:443> SSLEnable SSLProtocolDisable SSLv2
SSLv3 (any other directives) </VirtualHost>
SSLProtocolEnable 伪指令
SSLProtocolEnable 伪指令可用来启用个别 SSL 协议。
在分布式平台上,此伪指令的用处有限,因为缺省情况下将自动启用所有有用的协议。
在 z/OS 上,可以在 z/OS 服务添加对 TLSv1.1 和 TLSv1.2 的支持之后使用此伪指令。在 z/OS 上运行的 IBM HTTP Server 中,缺省情况下未启用
TLSv1.1 和 TLSv1.2 协议。
名称 | 描述 |
---|---|
语法 | SSLSuiteBMode |
作用域 | 虚拟主机 |
缺省值 | 取消设置 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机允许多个实例。 |
SSLProxyEngine 伪指令
名称 | 描述 |
---|---|
语法 | SSLProxyEngine on|off |
作用域 | 基于 IP 的虚拟主机 |
缺省值 | Off |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机和全局服务器一个实例 |
值 | on|off |
SSLRenegotiation 伪指令
名称 | 描述 |
---|---|
语法 | SSLRenegotiation on|off|LEGACY_AND_RFC5746 |
缺省值 | Off |
模块 | mod_ibm_ssl |
上下文 | 虚拟主机 |
状态 | 扩展 |
值 | on|off|LEGACY_AND_RFC5746 |
- OFF(缺省值)
- 不允许重新协商。
- ON
- 允许 RFC5746 目前定义的安全重新协商。
- LEGACY_AND_RFC5746
- 同时允许安全重新协商和旧的不安全重新协商。
- 在 IBM HTTP Server 8.0 和更高版本中,此伪指令取代 SSLInsecureRenegotiation 伪指令。
- 对于 IBM HTTP Server 8.0.0.0,缺省值为 ON(接受 RFC5746 重新协商)。
- 在 7.0.0.21 之前,捆绑的 GSKit 安全库尚不了解 RFC5746,因此“ON”指的是旧的不安全重新协商。
- 对 LEGACY_AND_RFC5746 选项的支持需要 IBM HTTP Server 7.0.0.21 和更高版本。
SSLServerCert 伪指令
名称 | 描述 |
---|---|
语法 | SSLServerCert [prompt] certificate_labelSSLServerCert [prompt|ecdsa_certificate_label]certificate_label |
作用域 | 基于 IP 的虚拟主机。 |
缺省值 | 无,但 SSL 密钥库有自己的缺省证书概念。 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机和全局服务器一个实例。 |
值 | 证书标签。使用 /prompt 选项使 HTTP 服务器可以在启动期间提示您输入 Crypto 令牌密码。请不要在证书标签周围使用定界符。请确保该标签包含在一行中;忽略前导和尾随空格。 |
- 要选择非缺省证书标签,请指定其值是所需证书的标签的单个参数。
- 要使用密码令牌,请指定以冒号分隔的密码令牌名称和证书标签 (mytoken:mylabel)。可以选择指定 /prompt 作为第一个参数来交互式地提示您输入密码令牌密码,而不使用 SSLStashFile。
- 要同时配置基于 ECDSA 的证书和基于 RSA 的证书,请指定两个以空格分隔的证书标签。缺省情况下,将使用 RSA 证书,但支持 TLS1.2 或更高版本的客户机可能会在握手期间请求 ECDSA 证书。
SSLServerCert example.com
SSLServerCert myRSA, myECDSA
SSLServerCert swtoken:cert1
SSLSNIMap
SSLSNIMap 伪指令将 TLS 服务器名称指示 (SNI) 主机名映射至证书标签。
名称 | 描述 |
---|---|
语法 | SSLSNIMap hostname cert-label |
作用域 | 虚拟主机 |
缺省值 | 已禁用 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机多个实例 |
值 | 客户机使用的主机名以及所配置的密钥文件中存在的证书标签 |
SSLSNIMap 伪指令允许服务器根据所请求客户机的主机名以另一个 TLS 证书进行响应。如果使用基于名称的虚拟主机,那么 SSLSNIMap 应该仅存在于 ip:port 组合的第一个列出的虚拟主机中(基于名称的虚拟主机集的缺省虚拟主机)。
SSLStashfile 伪指令
SSLStashfile 伪指令指示带有文件名的文件路径,该文件包含用于打开 PKCS11 设备的加密密码。
名称 | 描述 |
---|---|
语法 | SSLStashFile /usr/HTTPServer/mystashfile.sth |
作用域 | 虚拟主机和全局服务器。 |
缺省值 | 无。 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机和全局服务器一个实例。 |
值 | 使用 sslstash 命令创建的 LDAP 和/或 PKCS11 隐藏文件的文件名。 |
SSLStashFile 不指向正在使用的密钥文件的隐藏文件,因为该隐藏文件是根据密钥文件名称自动计算出来的,并且是另一种类型的隐藏文件。
可以使用 IBM HTTP Server 的 bin 目录中的 sslstash 命令来创建您的 CRL 或加密设备隐藏文件。您使用 sslstash 命令指定的密码应该就是您用来登录到 LDAP 服务器或加密硬件的密码。
- 在发出 sslstash 命令时不覆盖现有的 *.sth 文件。
- 绝对不要为 sslstash 命令的输出选择与 CMS 密钥文件 (*.kdb) 的文件名相对应的文件名。
用法:sslstash [-c] <directory_to_password_file_and_file_name> <function_name> <password>
- -c:创建新的隐藏文件。如果未指定此参数,那么现有文件将会更新。
- File:表示要创建或更新的文件的标准名称。
- Function:指示要对其使用密码的功能。有效值包括 crl 或 crypto。
- Password:表示要隐藏的密码。
请将 SSLStashFile 伪指令与 SSLCRLPort、SSLCRLHostname 和 SSLCRLUserID 伪指令一起用于基于 LDAP 的 CRL 存储库的静态配置。仅当显式 CRLDistributionPoint X.509v3 证书扩展不存在或在该扩展中指定的服务器无响应(不可用)时,才有必要使用这些伪指令来查询基于 LDAP 的 CRL 存储库。
如果 CRLDistributionPoint 扩展存在于证书中且该扩展中指定的服务器有响应(可用),那么在 CRLDistributionPoint 中指定的 LDAP 服务器会被匿名地查询,而不使用这些伪指令。
SSLSuiteBMode
SSSLSuiteBMode 伪指令可用于将封闭虚拟主机配置为对 TLS 使用 Suite B 概要文件。
Suite B 概要文件可以大幅减少服务器使用的可用签名算法和密码规范。随着相关标准变化,可接受的算法和密码集合也会随着时间的推移而变化。128 和 192 自变量表示 RFC 6460 中讨论的两个安全级别。
指定此伪指令会覆盖大多数之前指定的 SSL 伪指令。SSLAttributeSet 设置不会被此伪指令覆盖,因为它具有更高的优先级。所有 Suite B 概要文件都需要证书链,这样服务器才能使用强大的 ECC 签名。RFC 6460 记载了 Suite B 概要文件的限制。
名称 | 描述 |
---|---|
语法 | SSLSuiteBMode |
作用域 | 虚拟主机 |
缺省值 | 取消设置 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机一个实例 |
SSLTrace 伪指令
SSLTrace 伪指令在 mod_ibm_ssl 中启用调试日志记录。它与 LogLevel 伪指令配合使用。要在 mod_ibm_ssl 中启用调试日志记录,请将 LogLevel 设置为 debug 并将 SSLTrace 伪指令添加到 IBM HTTP Server 配置文件中的全局作用域,放在 mod_ibm_ssl 的 LoadModule 伪指令之后。通常在 IBM 支持机构调查 mod_ibm_ssl 的可疑问题时按他们的要求使用此伪指令。在正常工作情况下,建议不要启用此伪指令。
名称 | 描述 |
---|---|
语法 | SSLTrace |
作用域 | 全局 |
缺省值 | 未启用 mod_ibm_ssl 调试日志记录 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 已忽略 |
值 | 无 |
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
SSLUnknownRevocationStatus
SSLUnknownRevocationStatus 伪指令指定在 IBM HTTP Server 无法迅速确定撤销状态(此状态通过 CRL 或 OCSP 提供)时,IBM HTTP Server 如何作出反应。
名称 | 描述 |
---|---|
语法 | SSLUnknownRevocationStatus ignore | log | log_always | deny |
作用域 | 虚拟主机 |
缺省值 | ignore |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机允许一个实例 |
值 |
|
%{SSL_UNKNOWNREVOCATION_SUBJECT}e
当 SSLUnknownRevocationStatus 伪指令具有除 deny 之外的任何值时,您还可以在 mod_rewrite 表达式中使用此变量。请使用以下变量名称:%{ENV:SSL_UNKNOWNREVOCATION_SUBJECT}
SSLV2Timeout 伪指令
SSLV2Timeout 伪指令为 SSL V2 会话标识设置超时。
名称 | 描述 |
---|---|
语法 | SSLV2Timeout 60 |
作用域 | 全局库和虚拟主机。 |
缺省值 | 40 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机和全局服务器一个实例。 |
值 | 0 到 100 秒。 |
SSLV3Timeout 伪指令
SSLV3Timeout 伪指令为 SSL V3 和 TLS 会话标识设置超时。
名称 | 描述 |
---|---|
语法 | SSLV3Timeout 1000 |
作用域 | 全局库和虚拟主机。
|
缺省值 | 120 |
模块 | mod_ibm_ssl |
配置文件中的多个实例 | 每个虚拟主机和全局服务器一个实例。 |
值 | 0 到 86400 秒。 |
SSLVersion 伪指令
SSLVersion 伪指令导致在客户机已使用非指定的 SSL 协议版本连接时,以 403 响应拒绝对象访问。
在大多数情况下,要确保使用特定的 SSL 协议版本,使用 SSLProtocolDisable 伪指令比使用 SSLVersion 伪指令更好。SSLProtocolDisable 伪指令使客户机浏览器能够在可能时协商其他协议版本,而 SSLVersion 伪指令导致 IBM HTTP Server 发送 403 响应,这可能会使用户混淆。
名称 | 描述 | |
---|---|---|
语法 | SSLVersion ALL | |
作用域 | 每个目录节一个伪指令。 | |
缺省值 | 无。 | |
模块 | mod_ibm_ssl | |
配置文件中的多个实例 | 每个 <Directory> 或 <Location> 节一个实例。 | |
值 | ![]() |
![]() |