|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 注意: | keytool 实用工具是 Sun Microsystems 的产品。因此,BEA Systems 不提供有关此实用工具的完整文档。有关详细信息,请参阅位于 http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/keytool.html 的“keytool-Key and Certificate Management Tool”描述。 |
| 注意: | 对于 CertGen 实用工具生成的数字证书和私钥,只应将其用于演示和测试目的,不应用于生产环境。 |
CertGen 实用工具提供了为发行所生成的证书而指定 CA 证书和密钥的命令行选项。(仅在默认情况下) CertGen 实用工具生成的数字证书将生成证书时所在的计算机的主机名作为其通用名字段 (cn) 的值。使用命令行选项可指定 cn 及其他主题域名 (DN) 字段的值,如 orgunit、organization、locality、state 和 countrycode。
CertGen 实用工具可生成 PEM 和 DER 格式的公共证书和私钥文件。在 Windows 中,双击 .der 文件可查看生成的数字证书的详细信息。在启动 WebLogic Server 或在客户端使用数字证书时可使用.pem 文件。
默认情况下,CertGen 实用工具使用以下演示数字证书和私钥文件:CertGenCA.der 和 CertGenCAKey.der。CertGen 会在当前目录或 WL_HOME/server/lib 目录中查找这些文件,weblogic.home 系统属性或 CLASSPATH 中对查找目录的位置进行了指定。如果要使用这些文件,您不需要在命令行中指定 CA 文件。也可以在命令行中指定 CA 文件。
有关 CertGen 实用工具的语法和参数的详细信息,请参阅“WebLogic Server 命令参考”中的 CertGen。
有关使用 CertGen 实用工具生成证书和私钥以及使用 ImportPrivateKey 实用工具创建密钥库并存储私钥的示例,请参阅“WebLogic Server 命令参考”中的 ImportPrivateKey。
| 注意: | 如果不使用 -cn 选项明确指定主机名,CertGen 将使用 JDK InetAddress.getHostname() 方法来获得它置于主题通用名中的主机名。getHostName() 方法在不同的平台上会有不同的结果。在某些平台上(如 Solaris),它会返回一个全限定域名(Fully Qualified Domain Name,简称 FQDN),而在其他平台上(如 Windows NT),则返回一个短主机名。在 Solaris 上,InetAddress.getHostname() 的结果取决于 /etc/nsswitch.conf 文件中对主机项的配置。 |
| 注意: | 如果 WebLogic Server 充当客户端(并且默认启用了主机名验证),则需要确保在 URL 中指定的主机名与服务器证书中的主题通用名相符。否则由于主机名不符,连接将失败。 |
很多公司都作为其自身的证书颁发机构。要在 WebLogic Server 中使用可信CA证书,请执行下列操作:
der2pem 实用工具对其进行转换。
WebLogic Server 不能使用由 Microsoft 发行的数字证书的格式 (p7b)。以下示例可在 Windows XP 上将 p7b (PKCS#7) 格式的数字证书转换为 PEM 格式:
| 注意: | 此向导会向输出文件追加一个 .cer 扩展名,.cer 扩展名是追加在 Base 64 编码的证书和 DER 证书后的通用扩展名。退出此向导后,可将此扩展名更改为 .pem。 |
| 注意: | 对于包含证书链的 p7b 证书文件,需要将发行方 PEM 数字证书连接到此证书文件。WebLogic Server 可使用生成的证书文件。 |
低安全性的浏览器证书极易获得,可从 Web 浏览器中获取,通常可选择“选项”或“首选项”中的“安全”菜单项。转到“个人证书”项并请求获取新的数字证书。将询问一些有关您自己的信息。
您收到的数字证书包含有公共信息(包含您的姓名和公钥)和一些希望由第三方进行身份验证的其他信息,如您的电子邮件地址。稍后在请求身份验证时,您将提供此数字证书。
在获取数字证书的过程中,Web 浏览器会生成一个公钥-私钥对。私钥仍应保密。它存储在本地文件系统中,并且始终不得离开 Web 浏览器所在的计算机,以确保获取数字证书的过程本身是安全的。在某些浏览器中,可用密码对私钥进行加密,不对密码进行存储。在加密私钥时,Web 浏览器在每次会话中至少会向您询问一次密码。
| 注意: | 从 Web 浏览器获取的数字证书在其他类型的 Web 浏览器中或在相同 Web 浏览器的不同版本上无法工作。 |
| 注意: | 不赞成使用基于文件的证书链。现在,整个证书链已导入到密钥库中。本部分中的步骤只是为了向后兼容而提供的。 |
要在 WebLogic Server 中使用证书链,请执行下列操作:
清单 10-1 显示了一个示例证书链。
-----BEGIN CERTIFICATE-----
MIICyzCCAjSgAwIBAgIBLDANBgkqhkiG9w0BAQQFADCBtjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xFTATBgNVBAoTDEJFQSBXZWJMb2dpYzERMA8GA1UECxMIU2VjdXJpdHkxLzAtBgNVBAMTJkRlbW8gQ2VydGlmaWNhdGUgQXV0aG9yaXR5IENvbnN0cmFpbnRzMR8wHQYJKoZIhvcNAQkBFhBzZWN1cml0eUBiZWEuY29tMB4XDTAyMTEwMTIwMDIxMloXDTA2MTAxNTIwMDIxMlowgZ8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMRUwEwYDVQQKEwxCRUEgV2ViTG9naWMxETAPBgNVBAsTCFNlY3VyaXR5MRkwFwYDVQQDExB3ZWJsb2dpYy5iZWEuY29tMR4wHAYJKoZIhvcNAQkBFg9zdXBwb3J0QGJlYS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMJX8nKUgsFej8pEu/1IVcHUkwY0c2JbBzOryu3sce4QjX+rGxiCjoPm2MY=yts2BvonuJ6CztdZf8B/LBEWCz+qRrtdFn9mKSZWGvrAkmMPz2RhXEOThpoRo5kZz2FQ9XF/PxIJXTYCM7yooRBwXoKYjquRwiZNtUiU9kYi6Z3prAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAh2eqQGxEMUnNTwEUD
0tBq+7YuAkjecEocGXvi2G4YSoWVLgnVzJoJuds3c35KE6sxBe1luJQuQkE9SzALG/6lDIJ5ctPsHFmZzZxY7scLl6hWj5ON8oN2YTh5Jo/ryqjvnZvqiNIWe/gqr2GLIkajC0mz4un1LiYORPig3fBMH0=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIC+jCCAmOgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBtjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xFTATBgNVBAoTDEJFQSBXZWJMb2dpYzERMA8GA1UECxMIU2VjdXJpdHkxLzAtBgNVBAMTJkRlbW8gQ2VydGlmaWNhdGUgQXV0aG9yaXR5IENvbnN0cmFpbnRzMR8wHQYJKoZIhvcNAQkBFhBzZWN1cml0eUBiZWEuY29tMB4XDTAyMTEwMTIwMDIxMVoXDTA2MTAxNjIwMDIxMVowgbYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMRUwEwYDVQQKEwxCRUEgV2ViTG9naWMxETAPBgNVBAsTCFNlY3VyaXR5MS8wLQYDVQQDEyZEZW1vIENlcnRpZmljYXRlIEF1dGhvcml0eSBDb25zdHJhaW50czEfMB0GCSqGSIb3DQEJARYQc2VjdXJpdHlAYmVhLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3ynD8l5JfLob4g6d94dNtI0Eep6QNl9bblmswnrjIYz1BVjjRjNVal9fRs+8jvm85kIWlerKzIMJgiNsj50WlXzNX6orszggSsW15pqV0aYE9Re9K
CNNnORlsLjmRhuVxg9rJFEtjHMjrSYr2IDFhcdwPgIt0meWEVnKNObSFYcCAwEAAaMWMBQwEgYDVR0TAQH/BAgwBgEB/wIBATANBgkqhkiG9w0BAQQFAAOBgQBS+0oqWxGyqbZO028zf9tQT2RKojfuwywrDoGW96Un5IqpFnBHIu5atliJo3OUpiH18KkwLN8DVP/3t3K3O3kXdIuLbqAL0i5xyBlAhr7gE5eVhIyeMg7ETBPLyGO2BF13Y24LlsO+MX9jW7fxMraPN608QeJXkZw0E0cGwrw2AQ==
-----END CERTIFICATE-----
获取了私钥、数字证书及可信 CA 证书后,需要将其存储以便 WebLogic Server 能够使用它们来查找和验证标识。私钥和其关联的数字证书以及可信 CA 证书都存储在密钥库中。通过 WebLogic Server 管理控制台,或者通过在命令行中指定,均可对密钥库进行配置。使用 WebLogic Server 管理控制台中的“配置”>“密钥库”页配置 WebLogic Server 的标识和信任密钥库。请参阅“管理控制台联机帮助”中的配置密钥库。
为向后兼容,私钥和可信 CA 证书可存储在文件中,或存储在通过 WebLogic 密钥库提供程序访问的 JKS 密钥库中。除此以外,可信 CA 证书还可以存储在 JKS 密钥库中。使用 WebLogic Server 管理控制台的“配置”>“SSL”页,可指定在使用文件或通过 WebLogic 密钥库提供程序访问的 JKS 密钥库时的标识和信任选项。
在配置 SSL 时,必须确定标识和信任的存储方式。尽管标识和信任可共用一个密钥库,但 BEA 建议为标识和信任分别使用独立的密钥库,原因是标识密钥库(私钥/数字证书对)和信任密钥库(可信 CA 证书)可能会有不同的安全要求。例如:
总的来说,同一域中的系统具有相同的信任规则(使用同一组可信 CA),而它们所具有的标识却可能是按每个服务器规定的。标识要求一个私钥,不应将私钥在系统间复制。因此,应为每个系统维护独立的标识密钥库,每个密钥库应仅包含该系统所需要的服务器标识。但是,可在系统间复制信任密钥库,这使得标准化信任规则变得很容易。
标识更有可能存储在硬件密钥库中,如 nCipher。信任可存储在基于文件的 JDK 密钥库中而不会有任何安全问题,原因是信任库只包含证书,而不包含私钥。
使用密钥库的目的是实现私钥/数字证书对和可信 CA 证书的安全存储和管理。使用以下机制可创建密钥库并将私钥和可信 CA 证书加载到密钥库中:
ImportPrivateKey 实用工具。使用 ImportPrivateKey 实用工具可拾取私钥和数字证书文件并将其加载到密钥库中。有关详细信息,请参阅“WebLogic Server 命令参考”中的 ImportPrivateKey。
keytool 实用工具。使用 keytool 实用工具可生成私钥/数字证书对并将已签名的私钥导入密钥库中。有关详细信息,请参阅 WebLogic Server 如何定位信任。虽然使用 keytool 实用工具可以生成新的私钥和数字证书并将它们添加到密钥库中,但此实用工具并不允许从文件中拾取现有的私钥并将其导入密钥库中。应改用 WebLogic ImportPrivateKey 实用工具。 | 注意: | keytool 实用工具不允许将可信 CA 证书从文件中导入至密钥库中。 |
WebLogic Server 通过唯一的别名对密钥库中的所有私钥项进行访问。在将私钥加载到密钥库中时可指定别名。别名区分大小写;别名 Hugo 和 hugo 指的是同一密钥库项。私钥的别名是在 WebLogic Server 管理控制台的“配置”>“SSL”页的“私钥别名”字段中指定的。尽管 WebLogic Server 在访问可信 CA 证书时并不使用别名,但密钥库在将可信 CA 证书加载到密钥库时确实要求使用别名。
密钥库中由 WebLogic Server 识别为可信的所有证书颁发机构都为可信。
WebLogic Server 在加载其可信 CA 证书时使用以下算法:
-Dweblogic.security.SSL.trustedCAkeystore 命令行参数指定的,则将从密钥库加载可信 CA 证书。
config.xml) 中指定的,则将从指定的密钥库加载可信 CA 证书。如果服务器是用 DemoTrust 配置的,将从 WL_HOME\server\lib\DemoTrust.jks 和 JDK cacerts 密钥库加载可信 CA 证书。
config.xml) 中指定的,则将从此文件加载可信 CA 证书(这仅仅是为了与 6.x SSL 配置兼容)。
WL_HOME\server\lib\cacerts 密钥库加载可信 CA 证书。
默认情况下,WebLogic Server 配置有两个密钥库:
这些密钥库位于 WL_HOME\server\lib 目录中。对于测试和开发来说,密钥库配置是完全的。但是,请不要在生产环境中使用此演示密钥库。由于演示密钥库中的数字证书和可信 CA 证书是由 WebLogic Server 演示证书颁发机构签名的,所以使用演示密钥库的 WebLogic Server 安装将信任任何同样使用演示密钥库的 WebLogic Server 安装。需要创建只在您的安装之间互相信任的安全环境。
也可以使用 WebLogic 脚本工具或 Java 管理扩展(Java Management Extensions,简称 JMX)API 创建新的安全配置。有关详细信息,请参阅 WebLogic 脚本工具和使用 JMX 开发自定义管理实用工具手册。
| 最新热点 | 最新推荐 | 相关文章 | ||
| · 面向对象设计与编程核心技术 · Tomcat系统安全管理与权限管理 · 雅虎公司C#笔试题 · 利用Java事件处理机制实现录制、回放功能 · apache+tomcat+mysql负载均衡和集群 · Linux 指令大全 · 应用服务器内存泄露问题诊断一例 · 追求代码质量: 软件架构的代码质量 · 对话 UNIX · 关于一些算法问题与朋友的讨论 |
· 对话 UNIX · nmon 性能:分析 AIX 和 Linux 性能的免费 · 追求代码质量: 谨防紧密耦合! · 应用服务器内存泄露问题诊断一例 · Linux 指令大全 · C 编程最佳实践 · LPI 证书 101 考试准备,第2部分 [正则表 · LPI 证书 101 考试准备,第1 部分 [使用L · Linux 究竟是什么? · 利用Java事件处理机制实现录制、回放功能 |
[确保 WebLogic Server 安全 [确保 WebLogic Server 安全 [确保 WebLogic Server 安全 [确保 WebLogic Server 安全 [确保 WebLogic Server 安全 [确保 WebLogic Server 安全 [确保 WebLogic Server 安全 [确保 WebLogic Server 安全 [确保 WebLogic Server 安全 [确保 WebLogic Server 安全 |
|