|
以下部分介绍如何配置由 WebLogic Server 提供的安全提供程序。
| 注意: |
WebLogic Server 包含大量的身份验证提供程序和标识声明提供程序,本文将在单独的部分中分别进行介绍,以便读者更好地理解。请参阅配置身份验证提供程序。 |
何时需要配置安全提供程序?
默认情况下,大多数 WebLogic 安全提供程序通常都配置为在安装 WebLogic Server 后运行。但是,下列情况会要求提供配置信息:
在安全领域中,可以使用 WebLogic 提供的安全提供程序,也可以使用自定义安全提供程序。要配置自定义安全提供程序,请参阅“管理控制台联机帮助”中的配置自定义安全提供程序。
对安全提供程序重新排序
安全领域中可以配置属于同一给定类型的多个安全提供程序。例如,可以使用两个或多个不同的角色映射提供程序或授权提供程序。如果在安全领域中有多个相同类型的安全提供程序,则这些提供程序的调用顺序可影响安全过程的整个结果。默认情况下,按照安全提供程序添加到领域的顺序对其进行调用。可以使用管理控制台更改提供程序的顺序。请参阅“管理控制台联机帮助”中的重新排序安全提供程序。
配置授权提供程序
授权是限制用户和资源之间的交互以确保实现完整性、机密性和可用性的过程。换句话说,授权负责基于用户标识和其他信息控制对资源的访问。只有在创建新的安全领域时,才需要配置授权提供程序。
默认情况下,新建域中的安全领域包含 XACML 授权提供程序。XACML 授权提供程序使用 XACML,即可扩展访问控制标记语言。有关使用 XACML 授权提供程序的信息,请参阅“使用角色和策略确保 WebLogic 资源安全”中的使用 XACML 文档确保 WebLogic 资源安全。WebLogic Server 还包含使用专用策略语言的 WebLogic 授权提供程序。该提供程序名为 DefaultAuthorizer,但不再是默认授权提供程序。
请参阅“管理控制台联机帮助”中的配置授权提供程序。
| 注意: |
WebLogic 授权提供程序通过缓存它所查找的角色、谓词和资源数据来提高性能。有关配置这些缓存的信息,请参阅“使用角色和策略确保 WebLogic 资源安全”中的最佳实践:使用 WebLogic 提供程序时配置权限缓存。XACML 授权使用它自己的缓存,但该缓存不可配置。 |
配置 WebLogic 仲裁提供程序
如果安全领域中配置了多个授权提供程序,则对于给定的资源,每个提供程序可能会对“是否允许访问”这个问题返回不同的答案。这些答案可以是 PERMIT、DENY 或 ABSTAIN。而仲裁提供程序的主要功能便是在多个授权提供程序的答案不一致时确定如何处理。仲裁提供程序通过衡量每个授权提供程序的答案并返回最终的决定来解决授权冲突。
每个安全领域都需要一个仲裁提供程序,但最多只能有一个活动的仲裁提供程序。默认情况下,WebLogic 安全领域被配置为使用 WebLogic 仲裁提供程序。在安全领域中,可以使用 WebLogic 仲裁提供程序,也可以使用自定义仲裁提供程序。
| 注意: |
在管理控制台中,WebLogic 仲裁提供程序被称为默认仲裁者。 |
默认情况下,WebLogic 仲裁提供程序的大多数配置选项已经过定义。但是,可以设置“要求一致允许”选项来确定 WebLogic 仲裁提供程序如何处理来自已配置的授权提供程序的 PERMIT 和 ABSTAIN 表决组合。
如果启用该选项(默认设置),则必须在所有授权提供程序都赞成 PERMIT 的情况下,仲裁提供程序才赞成 true。
如果禁用该选项,ABSTAIN 表决将算作 PERMIT 表决。
配置角色映射提供程序
角色映射提供程序会计算授予给定资源的主题的角色集。然后,它将该角色信息提供给授权提供程序,以便授权提供程序能够回答针对 WebLogic 资源的“是否允许访问?”问题。默认情况下,WebLogic 安全领域被配置为使用 XACML 角色映射提供程序。XACML 角色映射提供程序使用 XACML,即可扩展访问控制标记语言。有关使用 XACML 角色映射提供程序的信息,请参阅“使用角色和策略确保 WebLogic 资源安全”中的使用 XACML 文档确保 WebLogic 资源安全。
WebLogic Server 还包含使用专用策略语言的 WebLogic 角色映射提供程序。该提供程序名为 DefaultRoleMapper,但它不再是新建安全领域中的默认角色映射提供程序。在安全领域中,还可以使用自定义角色映射提供程序。
默认情况下,XACML 角色映射提供程序的大多数配置选项已经过定义。但是,可以设置“已启用角色映射部署”,该选项指定此角色映射提供程序是否将 Web 应用程序和 EJB 的部署描述符中的信息导入到安全领域中。默认情况下启用此设置。
为支持“已启用角色映射部署”,角色映射提供程序必须实现 DeployableRoleProvider SSPI。角色由 XACML 角色映射提供程序存储在嵌入式 LDAP 服务器中。
有关使用、开发和配置角色映射提供程序的信息,请参阅:
| 注意: |
WebLogic 角色映射提供程序通过缓存它所查找的角色、谓词和资源数据来提高性能。有关配置这些缓存的信息,请参阅“使用角色和策略确保 WebLogic 资源安全”中的最佳实践:使用 WebLogic 提供程序时配置权限缓存。XACML 角色映射提供程序使用它自己的缓存,但该缓存不可配置。 |
配置 WebLogic 审核提供程序
通过审核过程,可以收集、存储和分发有关操作请求及其请求结果的信息(出于非否认目的)。换句话说,审核提供程序生成计算机活动的电子跟踪。
配置审核提供程序是一项可选操作。默认安全领域 (myrealm) 中并未配置审核提供程序。WebLogic Server 包含一个名为 WebLogic 审核提供程序的提供程序(在管理控制台中称为 DefaultAuditor)。也可以开发自定义审核提供程序,如“开发 WebLogic Server 的安全提供程序”中的审核提供程序所述。
WebLogic 审核提供程序可以记录表 4-1 中描述的事件。另外,如果启用配置审核(如配置审核中所述),则 WebLogic 审核提供程序还可以记录表 4-5 中描述的事件。
默认情况下,WebLogic 审核提供程序的大多数配置已经过定义。在将 WebLogic 审核提供程序添加到活动安全领域中后,它将开始记录审核事件。但是,还需要定义下列设置,操作可在管理控制台中针对该提供程序的“配置: 提供程序特定”页上进行。也可以使用 WebLogic 脚本工具或 Java 管理扩展(Java Management Extensions,简称 JMX)API 来配置审核提供程序:
“滚动时间(分钟)”- 指定在创建新的 DefaultAuditRecorder.log 文件之前需要等待的分钟数。将在指定的时间关闭审核文件并新建审核文件。将在同一目录中创建名为 DefaultAuditRecorder.YYYYMMDDHHMM.log(例如,DefaultAuditRecorder.200405130110.log)的备份文件。
“严重程度”- 适合 WebLogic Server 部署的严重程度级别。WebLogic 审核提供程序将审核具有指定严重程度的安全事件以及所有具有较高严重程度数字等级的事件。例如,如果将严重程度级别设置为 ERROR,则 WebLogic 审核提供程序将审核严重程度级别为 ERROR、SUCCESS 和 FAILURE 的安全事件。也可以将严重程度级别设置为 CUSTOM,然后启用要审核的特定严重程度级别,例如仅 ERROR 和 FAILURE 事件。审核事件包含严重程度名和数字等级;因此,自定义审核提供程序可以按名称或数字等级来筛选事件。当发生下列级别的安全事件时,便可以启动审核。 表 4-2 审核严重程度级别
默认情况下,由 WebLogic 审核提供程序记录的所有审核信息都保存在 WL_HOME\yourdomain\yourserver\logs\DefaultAuditRecorder.log 中。虽然审核提供程序是按安全领域配置的,但每个服务器都会将审核数据写入服务器目录中它自己的日志文件中。可以在命令行上使用以下 Java 启动选项为 DefaultAuditRecorder.log 文件指定新的目录位置:
-Dweblogic.security.audit.auditLogDir=c:\foo
新的文件位置将是 c:\foo\yourserver\logs\DefaultAuditRecorder.log。
有关详细信息,请参阅 WebLogic Server 命令参考中的“Security”。
| 警告: |
使用审核提供程序时,即使只记录了几个事件,也会影响 WebLogic Server 的性能。 |
有关详细信息,请参阅“管理控制台联机帮助”中的配置审核提供程序。
审核 ContextHandler 元素
审核事件包含的 ContextHandler 可以保留多种信息或对象。设置 WebLogic 审核提供程序的“活动 ContextHandler 条目”特性可以指定审核提供程序将记录 ContextHandler 中的哪些 ContextElement 条目。默认情况下,不会审核任何 ContextElements。大多数情况下,将使用 toString 方法记录ContextHandler 中的对象。表 4-3 列出了可用的 ContextHandler 条目。
表 4-3 用于审核的上下文处理程序条目
|
|
|
com.bea.contextelement. servlet.HttpServletRequest |
通过 HTTP 进行的 Servlet 访问请求或 SOAP 消息
javax.http.servlet.HttpServletRequest |
com.bea.contextelement. servlet.HttpServletResponse |
通过 HTTP 进行的 Servlet 访问响应或 SOAP 消息
javax.http.servlet.HttpServletResponse |
com.bea.contextelement. wli.Message |
WebLogic 集成消息。该消息将流入审核日志中。
|
com.bea.contextelement. channel.Port |
|
com.bea.contextelement. channel.PublicPort |
|
com.bea.contextelement. channel.RemotePort |
正在接受或处理请求的网络通道的 TCP/IP 连接的远程端的端口
|
com.bea.contextelement. channel.Protocol |
|
com.bea.contextelement. channel.Address |
|
com.bea.contextelement. channel.PublicAddress |
|
com.bea.contextelement. channel.RemoteAddress |
正在接受或处理请求的网络通道的 TCP/IP 连接的远程地址
|
com.bea.contextelement. channel.ChannelName |
|
com.bea.contextelement. channel.Secure |
|
com.bea.contextelement. ejb20.Parameter[1-N] |
|
com.bea.contextelement. wsee.SOAPMessage |
javax.xml.rpc.handler.MessageContext |
com.bea.contextelement. entitlement.EAuxiliaryID |
由 WebLogic Server 内部进程使用。
weblogic.entitlement.expression.EAuxiliary |
com.bea.contextelement. security.ChainPrevalidatedBySSL |
SSL 框架已验证证书链,这意味着:链中的证书已相互进行了适当签名;该链会在服务器的可信 CA 之一的证书处终止;该链使用基本约束规则;链中的证书尚未过期。
|
com.bea.contextelement. xml.SecurityToken |
不在本版本的 WebLogic Server 中使用。
weblogic.xml.crypto.wss.provider.SecurityToken |
com.bea.contextelement. xml.SecurityTokenAssertion |
不在本版本的 WebLogic Server 中使用。
|
com.bea.contextelement. webservice.Integrity{id:XXXXX} |
javax.security.auth.Subject |
com.bea.contextelement. saml.SSLClientCertificateChain |
从通过其收到 Sender-Vouches SAML 声明的 SSL 连接中获取的 SSL 客户端证书链。
java.security.cert.X509Certificate[] |
com.bea.contextelement. saml.MessageSignerCertificate |
java.security.cert.X509Certificate |
com.bea.contextelement. saml.subject.ConfirmationMethod |
SAML 声明的类型:bearer、artifact、sender-vouches 或 holder-of-key。
|
com.bea.contextelement. saml.subject.dom.KeyInfo |
将用于与 holder-of-key SAML 声明进行主题确认的 <ds:KeyInfo> 元素。
|
配置审核
可以配置管理服务器,使其在用户更改域中任何资源的配置或调用域中任何资源的管理操作时发出日志消息并生成审核事件。例如,如果用户禁用域中受管服务器上的 SSL,管理服务器将发出日志消息。如果启用了 WebLogic 审核提供程序,则它会将审核事件写入附加的安全日志中。这些消息和审核事件提供了对域配置更改的审核跟踪(配置审核)。
管理服务器会将配置审核消息写入它的本地日志文件。默认情况下,不会将这些审核消息写入域范围的消息日志中。
请注意,配置审核信息包含在授权事件中。因此,配置审核的另一种方式便是使用授权事件。但请注意,授权事件中的信息可指示是否允许访问以执行配置更改;它并不指示配置更改实际上是否已获得成功(例如,配置更改可能因无效而已经失败)。
启用配置审核
通过下列方法之一可启用配置审核:
使用管理控制台。在域的“配置: 常规”页上,设置“配置审核类型”。请参阅“管理控制台帮助”中的启用配置审核。
当启动管理服务器时,在 weblogic.Server 命令中包含下列 Java 选项之一:
使用 WebLogic 脚本工具更改 DomainMBean 的 ConfigurationAuditType 特性的值。请参阅 WebLogic 脚本工具。
配置审核消息
配置审核消息分为下列严重程度级别:
配置审核消息由消息 ID 标识,其范围为 159900-159910。
这些消息使用 MBean 对象名标识资源。WebLogic Server MBean 的对象名反映了 MBean 在层次数据模型中的位置。为反映该位置,对象名包含了父 MBean 中的名称/值对。例如,某服务器的 LogMBean 的对象名为:mydomain:Name=myserverlog,Type=Log,Server=myserver。请参阅“使用 JMX 开发自定义管理实用工具”中的 WebLogic Server MBean 数据模型。
表 4-5 概括了这些消息。
表 4-5 配置审核消息概要
|
|
WebLogic Server 生成具有此 ID 的消息... |
|
|
|
|
USER username CREATED MBean-name
其中 username 标识已登录并创建了资源的 WebLogic Server 用户。 |
|
|
|
USER username CREATED MBean-name
FAILED weblogic.management. NoAccessRuntimeException: exception-text stack-trace
其中 username 标识该未经过授权的 WebLogic Server 用户。 |
|
|
|
USER username REMOVED MBean-name
其中 username 标识已登录并删除了资源的 WebLogic Server 用户。 |
|
|
|
USER username REMOVE MBean-name
FAILED weblogic.management. NoAccessRuntimeException: exception-text stack-trace
其中 username 标识该未经过授权的 WebLogic Server 用户。 |
|
|
|
USER username MODIFIED MBean-name
ATTRIBUTE attribute-name
FROM old-value TO new-value
其中 username 标识已登录并更改了资源配置的 WebLogic Server 用户。 |
|
|
|
USER username MODIFY MBean-name
ATTRIBUTE attribute-name
FROM old-value TO new-value FAILED weblogic.management. NoAccessRuntimeException:
exception-text stack-trace
其中 username 标识该未经过授权的 WebLogic Server 用户。 |
|
|
|
USER username INVOKED ON
MBean-name METHOD operation-name PARAMS specified-parameters
其中 username 标识已登录并调用了资源的操作的 WebLogic Server 用户。 |
|
|
|
USER username INVOKED ON
MBean-name METHOD operation-name PARAMS specified-parameters FAILED weblogic.management. NoAccessRuntimeException:
exception-text stack-trace
其中 username 标识该未经过授权的 WebLogic Server 用户。 |
|
|
|
USER username, Configuration Auditing is enabled
其中 username 标识已启用配置审核的 WebLogic Server 用户。 |
|
|
|
USER username, Configuration Auditing is disabled
其中 username 标识已禁用配置审核的 WebLogic Server 用户。 |
| 注意: |
每当授权用户添加、修改或删除资源时,无论是否已启用了配置审核,管理子系统也会生成一条 ID 为 140009 的 Info 消息。例如: |
| 注意: |
<Sep 15, 2005 11:54:47 AM EDT> <Info> <Management> <140009> <Configuration changes for domain saved to the repository.> |
| 注意: |
虽然该消息可通知您域的配置已发生更改,但它不提供配置审核消息所提供的详细信息。此外,在调用资源的操作时,管理子系统也不会生成该消息。 |
表 4-6 列出了配置审核消息的其他消息特性。所有配置审核消息都为这些特性指定相同的值。
表 4-6 常用消息特性和值
|
|
|
|
|
|
|
|
|
|
|
无论是哪位用户修改了资源或调用了资源的操作,此值始终为 kernel identity。 |
|
|
由于管理服务器维护域中所有资源的配置数据,所以此值始终是管理服务器的名称。 |
|
|
由于管理服务器维护域中所有资源的配置数据,所以此值始终是管理服务器的主机名。 |
|
|
|
|
|
|
审核事件和审核提供程序
审核事件是审核提供程序可按特定方式读取和处理的对象。审核提供程序是一个可插入组件,安全领域使用它来收集、存储和分发有关操作请求及其请求结果的信息(出于非否认目的)。
如果启用域来发送审核事件,则该域将发送表 4-7 中所描述的事件。为该域配置的所有审核提供程序都可以处理这些事件。
所有事件的严重程度级别都是 SUCCESS,它们描述了启动操作的安全委托人、是否已授予权限以及所请求操作的对象(MBean 或 MBean 特性)。
表 4-7 配置审核的审核事件概要
|
|
WebLogic Server 生成此审核事件对象... |
|
|
weblogic.security.spi. AuditCreateConfigurationEvent
|
|
|
weblogic.security.spi. AuditDeleteConfigurationEvent
|
|
|
weblogic.security.spi. AuditInvokeConfigurationEvent
|
|
|
weblogic.security.spi. AuditSetAttributeConfigurationEvent
|
如果启用默认的 WebLogic Server 审核提供程序,它会将所有审核事件作为日志消息写入自己的日志文件中。
您创建或购买的其他审核提供程序可以筛选这些事件,并将它们写入诸如 LDAP 服务器、数据库或简单的文件之类的输出仓库中。另外,其他类型的安全提供程序还可以向审核提供程序请求审核服务。请参阅“开发 WebLogic Server 的安全提供程序”中的审核提供程序。
配置 WebLogic 凭据映射提供程序
凭据映射是指,远程系统(例如,旧式系统或应用程序)的身份验证和授权机制通过获取适当的凭据集来对远程用户进行身份验证以确定是否允许其访问目标 WebLogic 资源的过程。WebLogic 凭据映射提供程序会将 WebLogic Server 主题映射到要在访问此类资源时使用的用户名/密码对。
默认情况下,WebLogic 凭据映射提供程序的大多数配置选项已经过定义。但是,可以设置“已启用凭据映射部署”,以指定该凭据映射提供程序是否将资源适配器的部署描述符(weblogic-ra.xml 文件)中的凭据映射导入到安全领域中。默认情况下启用此设置。
为支持“已启用凭据映射部署”,凭据映射提供程序必须实现 DeployableCredentialProvider SSPI。凭据映射信息存储在嵌入式 LDAP 服务器中。
有关详细信息,请参阅:
配置 PKI 凭据映射提供程序
WebLogic Server 中包含的公钥基础结构(Public Key Infrastructure,简称 PKI)凭据映射提供程序将 (a) WebLogic Server 主题(发起方)和目标资源(以及可选的凭据操作)映射到 (b) 可由应用程序用于访问已定位资源的密钥对或公共证书。PKI 凭据映射提供程序使用主题和资源名从密钥库中检索相应的凭据。
要使用 PKI 凭据映射提供程序,需要:
使用适当的密钥配置密钥库,并在 WebLogic Server 群集中的所有计算机上分发此密钥库。WebLogic Server 不具备设置密钥库的功能。有关设置密钥库的信息,请参阅 help for the Java keytool utility,访问网址为 http://java.sun.com/j2se/1.4.2/docs/tooldocs/solaris/keytool.html。另外,有关 WebLogic Server 中的密钥库和密钥的信息,请参阅配置标识和信任。
配置 PKI 凭据映射提供程序。在默认安全领域 (myrealm) 中,PKI 凭据映射提供程序尚未得到配置。请参阅“管理控制台联机帮助”中的 PKI 凭据映射特性和配置凭据映射提供程序。
创建凭据映射。请参阅“管理控制台联机帮助”中的创建 PKI 凭据映射。
PKI 凭据映射特性
要配置 PKI 凭据映射提供程序,请设置下列特性的值。请参阅“管理控制台联机帮助”中的配置凭据映射提供程序。
密钥库提供程序 - Java 安全性 API 的密钥库提供程序。如果未指定任何值,则使用默认提供程序类。
密钥库类型 – JKS(默认值)或 PKCS12。
密钥库密码 – 用于访问密钥库的密码。
密钥库文件名 – 密钥库相对于服务器启动目录的位置。
另外,还有两个可选的特性,可在确切的资源或主题不可用时,用于确定 PKI 凭据映射提供程序将如何查找凭据映射:
使用资源层次 – 通过遍历每种资源的资源层次来查找凭据。在搜索所有可能的 PKI 凭据时,将从特定的资源开始遍历资源层次,以查找所有可能的匹配项。默认情况下启用此特性。
使用发起方组名 – 在将某个主题传递给 PKI 凭据映射提供程序时,将通过检查发起方所属的组来查找凭据。默认情况下启用此特性。
凭据操作
也可以通过凭据操作来标记凭据映射。可在创建凭据映射时通过管理控制台来完成此操作。凭据操作是一个用于区分在不同环境中使用的凭据映射的任意字符串。例如,一个凭据映射可以解密来自远程资源的消息,另一个凭据映射可以签署要发送到同一资源的消息。主题发起方和目标资源不足以区分这两个凭据映射。可以使用凭据操作将这两个凭据映射中的一个标记为类似 decrypt 的内容,而将另一个标记为 sign。然后,调用该 PKI 凭据映射提供程序的应用程序可以在传递给该提供程序的 ContextHandler 中提供所需的凭据操作值。
有关向 PKI 凭据映射中添加凭据操作的信息,请参阅“管理控制台联机帮助”中的创建 PKI 凭据映射。
配置 SAML 凭据映射提供程序
SAML 凭据映射提供程序充当 SAML 安全声明的生成程序,它允许 WebLogic Server 充当源站点以便使用 SAML 进行单一登录。SAML 凭据映射提供程序会基于目标站点或资源的配置为经过身份验证的主题生成有效的 SAML 1.1 声明。可以将 SAML 凭据映射提供程序配置为 SAML 站点间传输服务。请参阅“管理控制台联机帮助”中的配置凭据映射提供程序。
WebLogic Server 中的 SAML 凭据映射提供程序
本版本的 WebLogic Server 包含两个 SAML 凭据映射提供程序。SAML 凭据映射提供程序版本 2 提供了显著增强的配置选项,建议在新部署中使用此提供程序。WebLogic Server 9.1 中不赞成使用 SAML 凭据映射提供程序版本 1。一个安全领域最多只能有一个 SAML 凭据映射提供程序,如果安全领域中同时包含 SAML 凭据映射提供程序和 SAML 标识声明提供程序,则两者必须属于同一版本。请勿在使用版本 2 SAML 提供程序的同一安全领域中使用版本 1 SAML 提供程序。有关配置 SAML 凭据映射提供程序版本 1 的信息,请参阅 WebLogic Server 9.0 文档中的Configuring a SAML Credential Mapping Provider。
有关 WebLogic Server 对 SAML 支持的一般信息,请参阅“了解 WebLogic 安全性”中的安全声明标记语言 (SAML) 和使用 WebLogic 安全框架单一登录。有关如何在 SAML 单一登录配置中使用 SAML 凭据映射提供程序的信息,请参阅使用 Web 浏览器和 HTTP 客户端配置单一登录
配置声明生命周期
SAML 声明的有效性在时间上通常是有限的。SAML 凭据映射提供程序生成的声明的默认生存时间由 DefaultTimeToLive 特性指定。对于为不同的 SAML 依赖方生成的声明,可以替换其默认生存时间。
通常情况下,声明在 NotBefore 时间(默认为生成声明的大致时间)到 NotOnOrAfter 时间(按 NotBefore + TimeToLive 计算)内有效。要允许凭据映射器补偿源和目标站点之间的时钟差异,可以配置 SAML 凭据映射提供程序的 DefaultTimeToLiveDelta 特性。此生存时间偏移值是正整数或负整数,指示应将声明的 NotBefore 值设置为距“现在”之前或之后多少秒。如果设置 DefaultTimeToLiveDelta 的值,则声明生命周期仍然按 (NotBefore + TimeToLive) 计算,但 NotBefore 值将设置为 (now + TimeToLiveDelta)。例如,给定下列设置:
声明在生成时的声明周期有两分钟(120 秒),该时间将从生成前的 30 秒开始计算。
依赖方注册表
在将 WebLogic Server 配置为充当 SAML 安全声明的源时,需要注册可能请求并接受 SAML 声明的各方。对于每个 SAML 依赖方,可以指定使用的 SAML 配置文件、有关依赖方的详细信息以及在依赖方的声明中预期使用的特性。有关信息,请参阅:
配置凭据查找和验证框架
WebLogic Server 可以将数字证书作为 Web Service 请求、双向 SSL 或其他安全交互的一部分接收。为验证这些证书,WebLogic Server 包含了一个证书查找和验证(Certificate Lookup and Validation,简称 CLV)框架,其功能是查找并验证 X.509 证书链。CLV 框架的关键元素是 CertPathBuilder 和 CertPathValidator。CLV 框架仅需要一个活动的 CertPathBuilder 以及零个或多个 CertPathValidator,前者可在给定对证书链的引用时查找该链并进行验证,后者可在给定证书链时对该链进行验证。
当 WebLogic Server 收到证书时,CLV 框架将使用配置为 CertPathBuilder 的安全提供程序来查找并验证该证书链。如果该证书链被找到并且有效,则该框架将调用每个已配置的 CertPathValidator 对该链执行额外验证,其调用顺序为管理员对它们的配置顺序。仅当生成器和所有验证器都对链成功验证后,该链才是有效的。
仅当满足以下全部条件时,链才有效:
链中的证书相互间已进行适当签名。
该链的终止证书是服务器的可信 CA 之一。
链使用基本约束规则(例如,链中没有证书是由不允许颁发证书的证书颁发的)。
链中的证书尚未过期。
WebLogic Server 包含两个 CLV 安全提供程序:WebLogic CertPath 提供程序(同时充当 CertPathBuilder 和 CertPathValidator,如 CertPath 提供程序中所述)和证书注册表(如证书注册表中所述)。如果需要对整个证书链使用基于可信 CA 的验证,只需使用 WebLogic CertPath 提供程序。如果仅需要验证已注册的证书,只需使用证书注册表。如果要同时使用这两种类型的验证,请在使用时将证书注册表指定为当前生成器。
有关证书查找和验证的详细信息,请参阅配置标识和信任
CertPath 提供程序
WebLogic Server 中的默认安全领域被配置为使用 WebLogic CertPath 提供程序。CertPath 提供程序有两个功能:CertPathBuilder 和 CertPathValidator。CertPath 提供程序接收结束证书或证书链。如有必要,它将使用服务器的可信 CA 列表完成证书链。在生成该链后,CertPath 提供程序将对该链进行验证:检查链中的签名;确保链尚未过期;检查链的基本约束;验证链的结束证书是否是由服务器的可信 CA 之一颁发的。
WebLogic CertPath 提供程序除了其“当前生成器”特性外,不再需要任何其他配置,该特性指示是否应将 CertPath 提供程序用作活动证书链生成器。
证书注册表
证书注册表是一个安全提供程序,通过它可以显式注册允许访问 WebLogic Server 的可信证书列表。如果将证书注册表配置为安全领域的一部分,则只有在证书注册表中注册的证书才会被视为有效证书。证书注册表为执行撤销检查提供了一个廉价的机制。通过从证书注册表中删除证书,可以使证书立即失效。该注册表存储在嵌入式 LDAP 服务器中。
证书注册表既是一个 CertPath 生成器,也是一个 CertPath 验证器。无论在哪种情况下,证书注册表都可以确保链的结束证书存储在注册表中,但不执行其他验证。如果使用证书注册表作为安全领域的 CertPath 生成器,并且还需要使用 WebLogic CertPath 提供程序或其他安全提供程序来执行完整的链验证,则应确保在每个服务器的信任密钥库中注册中间和根 CA,并在证书注册表中注册结束证书。
WebLogic Server 中的默认安全领域不包含证书注册表。在配置了证书注册表后,即可使用 WebLogic 管理控制台在注册表中添加、删除和查看证书。可以使用 Java keytool 实用工具将密钥库中的证书导出到一个文件中。可以使用控制台将文件系统中以 PEM 或 DER 文件表示的证书导入证书注册表。也可以使用控制台查看证书的内容,包括其主题 DN、发行方 DN、序列号、有效日期、指纹等。
请参阅“管理控制台联机帮助”中的配置证书路径提供程序。
配置 WebLogic 密钥库提供程序
| 注意: |
不赞成使用 WebLogic 密钥库提供程序。它仅用于支持向后兼容性。应改用 Java 密钥库 (JKS)。WebLogic 密钥库提供程序支持的所有功能都可以通过使用 Java 密钥库获得。 |
有关配置 WebLogic 密钥库提供程序的信息,请参阅“管理控制台联机帮助”中的配置密钥库。
|