私钥、数字证书和可信证书颁发机构

私钥、数字证书和可信证书颁发机构可建立和验证服务器标识和信任。

SSL 使用公钥加密技术进行身份验证。使用公钥加密时,将为一台服务器生成一个公钥和一个私钥。对于用公钥加密的数据,只能用相应的私钥解密;对于用私钥加密的数据,只能用相应的公钥解密。私钥受到妥善的保护,确保只有私钥的所有者才能解密用公钥加密的消息。

公钥嵌入一个数字证书中,同时嵌入的还有描述公钥所有者的其他信息,如姓名、街道地址和电子邮件地址。私钥和数字证书可为服务器提供标识。

嵌入数字证书中的数据由证书颁发机构进行验证,并由证书颁发机构的数字证书进行数字签名。众所周知的证书颁发机构包括 Verisign 和 Entrust.net。可信证书颁发机构(Certificate Authority,简称 CA)证书可为证书建立信任。

参与 SSL 连接的应用程序在其他方评估和接受此应用程序的数字证书时得到身份验证。Web 浏览器、服务器及其他 SSL 启用的应用程序通常会接受由可信的证书颁发机构签名并且有效的任何数字证书。例如,由于数字证书本身已过期或证书颁发机构用于对此签名的数字证书已过期,则数字证书可能失效。如果服务器的数字证书中的主机名与客户端指定的 URL 不符,则表示服务器证书可能失效。

 


配置标识和信任:主要步骤

要创建服务器的标识和信任,请执行下列操作:

  1.  从 CertGen 实用工具、Sun Microsystem 的 keytool 实用工具,或著名的供应商如 Entrust 或 Verisign 处获取数字证书、私钥和可信 CA 证书。也可使用由 WebLogic Server 工具包提供的数字证书、私钥和可信 CA 证书。只应将演示数字证书、私钥和可信 CA 证书用在开发环境中。
  2.  存储私钥、数字证书和可信 CA 证书。私钥和可信 CA 证书存储在密钥库中。
    注意: 首选的密钥库格式为 JKS(Java 密钥库)。WebLogic Server 支持将私钥和可信 CA 证书存储在文件或 WebLogic 密钥库提供程序中,仅仅是为了满足向后兼容的目的。
  3.  在 WebLogic Server 管理控制台中配置 WebLogic Server 的标识和信任密钥库。请参阅“管理控制台联机帮助”中的配置密钥库

以下各部分将描述这些步骤。

 


标识和信任的受支持格式

保密邮件(Privacy Enhanced Mail,简称 PEM)格式是私钥、数字证书和可信证书颁发机构(Certificate Authorities,简称 CA)的首选格式。首选的密钥库格式为 Java 密钥库(Java KeyStore,简称 JKS)格式。

.pem 格式的文件以下行开始:

----BEGIN CERTIFICATE----

并以下行结束:

----END CERTIFICATE----

.pem 格式的文件可支持多种数字证书(如可包含证书链)。证书在文件中的顺序非常重要。服务器的数字证书应为文件中的第一个数字证书,其后是发行方证书,等等。链中的每个证书后都跟有其发行方证书。如果链中最后一个证书为链的自签名(自发行)根证书,则将此链视为完整的链。请注意,链并不一定是完整的。

在使用不赞成的基于文件的私钥、数字证书和可信 CA 时,WebLogic Server 可使用 PEM 或识别编码规则(Distinguished Encoding Rules,简称 DER)格式的数字证书。

.der 格式的文件包含了单个证书的二进制数据。因此,一个 .der 文件仅可用于单个证书,而一个 .pem 文件可用于多个证书。

Microsoft 是常用的证书颁发机构。Microsoft 发行的可信 CA 证书采用 p7b 格式,必须将其转换为 PEM 格式才能在 WebLogic Server 中使用。有关详细信息,请参阅将 Microsoft p7b 格式转换为 PEM 格式

私钥文件(即不存储在密钥库中的私钥)必须采用 PKCS#5/PKCS#8 PEM 格式。

还可以将使用其他 WebLogic Server 版本的私钥和数字证书与此 WebLogic Server 版本一起使用。将私钥和数字证书从识别编码规则 (DER) 格式转换为保密邮件 (PEM) 格式。有关详细信息,请参阅“WebLogic Server 命令参考”中的“使用 WebLogic Server Java 实用工具”中有关 der2pem 实用工具的描述。

转换文件后,确保数字证书文件具有 
-----BEGIN CERTIFICATE----- 头信息和 -----END CERTIFICATE----- 尾信息。否则,数字证书将无效。

注意: OpenSSL 可以为其生成的 PEM 证书添加头信息。为了在 WebLogic Server 中使用这样的证书,应删除证书中“-----BEGIN CERTIFICATE-----”之前的所有内容,使用文本编辑器可执行此操作。

 


获取私钥、数字证书和可信证书颁发机构

服务器需要一个私钥、一个包含匹配的公钥的数字证书以及一个至少用于一个可信证书颁发机构的证书。WebLogic Server 支持来自以下来源的私钥、数字证书和可信 CA 证书:

  •  位于 WL_HOME\server\lib 目录和 JAVA_HOME\jre\lib\security 目录中的演示数字证书、私钥和可信 CA 证书。

    只应将演示数字证书、私钥和可信 CA 证书用在开发环境中。

  •  Sun Microsystem 的 keytool 实用工具也可用于生成私钥、WebLogic Server 自签名的数字证书以及证书签名请求(Certificate Signing Request,简称 CSR)。
    •  将 CSR 提交给证书颁发机构以获取 WebLogic Server 的数字证书。
    •  使用 keytool 实用工具用新的数字证书更新自签名的数字证书。
    •  在生产环境中使用 WebLogic Server 时,应使用 keytool 实用工具获取信任和标识。

      有关 Sun 的 keytool 实用工具的详细信息,请参阅位于 http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/keytool.html 的“keytool-Key and Certificate Management Tool”描述。

      注意: 使用 keytool 实用工具时,默认的密钥对生成算法为数字签名算法(Digital Signature Algorithm,简称 DSA)。WebLogic Server 不支持 DSA。在使用 WebLogic Server 时,应指定其他的密钥对生成和签名算法。
  •  对于由 CertGen 实用工具生成的数字签名和私钥,只应将其用于开发环境中的演示或测试,而不应用于生产环境。如果希望在数字证书中设置过期日期,或者要在数字证书中指定正确的主机名以便使用主机名验证,则可以使用 CertGen 实用工具。(由 WebLogic Server 提供的演示数字证书使用计算机的默认主机名作为主机名。)有关使用 CertGen 实用工具获取私钥和数字证书的详细信息,请参阅使用 CertGen 实用工具
注意: 不赞成使用证书请求生成器 Servlet。请用 Sun Microsystems 的 keytool 实用工具替换证书请求生成器 Servlet。有关 keytool 的详细信息,请参阅常用 Keytool 命令

常用 Keytool 命令

表 10-1 列出了在使用 WebLogic Server 创建和使用 JKS 密钥库时所用的 keytool 命令。

注意: keytool 实用工具是 Sun Microsystems 的产品。因此,BEA Systems 不提供有关此实用工具的完整文档。有关详细信息,请参阅位于 http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/keytool.html的“keytool-Key and Certificate Management Tool”描述。

表 10-1  常用的 keytool 命令
命令
描述
keytool -genkey -keystore  keystorename  -storepass  keystorepassword
在密钥库中生成一个新的私钥项和自签名的数字证书。如果密钥库不存在,则会创建密钥库。
keytool -import -alias  aliasforprivatekey  
-file 
privatekeyfilename.pem
-keypass  privatekeypassword
-keystore  keystorename  -storepass  keystorepassword
用一个由可信 CA 签名的数字证书更新自签名数字证书。
keytool -import -alias  aliasfortrustedca  -trustcacerts -file  trustedcafilename.pem  -keystore keystorename  -storepass  keystorepassword
将可信 CA 证书加载到密钥库中。如果密钥库不存在,则会创建密钥库。
keytool -certreq -alias alias
-sigalg
  sigalg
-file  certreq_file
-keypass  privatekeypassword
-storetype  keystoretype
-keystore  keystorename
-storepass  keystorepassword
生成一个 PKCS#10 格式的证书签名请求 (CSR) 和一个带私钥的自签名证书。
将 CSR 存储在指定的  certreq_file 中,并将证书/私钥对作为密钥项存储在指定的别名下的指定的密钥库中。
keytool -list -keystore  keystorename
显示密钥库中的内容。
keytool -delete -keystore  keystorename  -storepass  keystorepassword  -alias  privatekeyalias
从密钥库中删除指定的别名所标识的项。
keytool -help
提供 keytool 的联机帮助。

使用 CertGen 实用工具

注意: 对于 CertGen 实用工具生成的数字证书和私钥,只应将其用于演示和测试目的,不应用于生产环境。

CertGen 实用工具提供了为发行所生成的证书而指定 CA 证书和密钥的命令行选项。(仅在默认情况下) CertGen 实用工具生成的数字证书将生成证书时所在的计算机的主机名作为其通用名字段 (cn) 的值。使用命令行选项可指定 cn 及其他主题域名 (DN) 字段的值,如 orgunitorganizationlocalitystate 和 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证书,请执行下列操作:

  1.  确保可信 CA 证书采用 PEM 格式。
  2.  创建一个信任密钥库。有关详细信息,请参阅 WebLogic Server 如何定位信任
  3.  将可信 CA 证书存储在信任密钥库中。有关详细信息,请参阅 WebLogic Server 如何定位信任
  4.  配置 WebLogic Server 以使用信任密钥库。有关详细信息,请参阅配置用于生产环境的密钥库

将 Microsoft p7b 格式转换为 PEM 格式

WebLogic Server 不能使用由 Microsoft 发行的数字证书的格式 (p7b)。以下示例可在 Windows XP 上将 p7b (PKCS#7) 格式的数字证书转换为 PEM 格式:

  1.  在 Windows 资源管理器中,选中要转换的文件 (filename.p7b)。双击此文件可显示证书窗口。
  2.  在证书窗口的左窗格中,展开此文件。
  3.  展开证书文件夹以显示证书列表。
  4.  选择一个要转换为 PEM 格式的证书。用鼠标右键单击此证书,然后选择“所有任务”>“导出”以显示证书导出向导。
  5.  在此向导中,单击“下一步”。
  6.  选中“Base-64 encoded X.509 (.CER)”选项。然后单击“下一步”。(Base 64 编码为 PEM 格式。)
  7.  在“文件名:”字段中,请为已转换的数字证书输入一个名称,然后单击“下一步”。
注意: 此向导会向输出文件追加一个 .cer 扩展名,.cer 扩展名是追加在 Base 64 编码的证书和 DER 证书后的通用扩展名。退出此向导后,可将此扩展名更改为 .pem
  1.  验证设置是否正确。如果设置正确,请单击“完成”;如果不正确,请单击“上一步”并进行必要的修改。
注意: 对于包含证书链的 p7b 证书文件,需要将发行方 PEM 数字证书连接到此证书文件。WebLogic Server 可使用生成的证书文件。

从 Web 浏览器获取数字证书

低安全性的浏览器证书极易获得,可从 Web 浏览器中获取,通常可选择“选项”或“首选项”中的“安全”菜单项。转到“个人证书”项并请求获取新的数字证书。将询问一些有关您自己的信息。

您收到的数字证书包含有公共信息(包含您的姓名和公钥)和一些希望由第三方进行身份验证的其他信息,如您的电子邮件地址。稍后在请求身份验证时,您将提供此数字证书。

在获取数字证书的过程中,Web 浏览器会生成一个公钥-私钥对。私钥仍应保密。它存储在本地文件系统中,并且始终不得离开 Web 浏览器所在的计算机,以确保获取数字证书的过程本身是安全的。在某些浏览器中,可用密码对私钥进行加密,不对密码进行存储。在加密私钥时,Web 浏览器在每次会话中至少会向您询问一次密码。

注意: 从 Web 浏览器获取的数字证书在其他类型的 Web 浏览器中或在相同 Web 浏览器的不同版本上无法工作。

使用证书链(不赞成)

注意: 不赞成使用基于文件的证书链。现在,整个证书链已导入到密钥库中。本部分中的步骤只是为了向后兼容而提供的。

要在 WebLogic Server 中使用证书链,请执行下列操作:

  1.  请确保所有数字证书都采用 PEM 格式。如果采用 DER 格式,可以使用 der2pem 实用工具对其进行转换。如果所用的数字证书是由 Microsoft 发行的,请参阅将 Microsoft p7b 格式转换为 PEM 格式。可使用本部分中的步骤转换其他类型的数字证书。将数字证书保存为 Base 64 格式。
  2.  打开文本编辑器,将所有数字证书文件包含在一个单独的文件中。顺序非常重要。服务器数字证书应为文件中的第一个数字证书。数字证书的发行方应为文件中的第二个数字证书,等等,直至到达自签名的根证书颁发机构证书。此数字证书应为文件中的最后一个证书。

    数字证书间不得有空行。

  3.  在 WebLogic Server 管理控制台中的“配置”>“SSL”页的“服务器证书文件名”字段中指定此文件。

清单 10-1 显示了一个示例证书链。

清单 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 证书加载到密钥库中:

  •  WebLogic ImportPrivateKey 实用工具。使用 ImportPrivateKey 实用工具可拾取私钥和数字证书文件并将其加载到密钥库中。有关详细信息,请参阅“WebLogic Server 命令参考”中的 ImportPrivateKey
  •  Sun Microsystem 的 keytool 实用工具。使用 keytool 实用工具可生成私钥/数字证书对并将已签名的私钥导入密钥库中。有关详细信息,请参阅 WebLogic Server 如何定位信任。虽然使用 keytool 实用工具可以生成新的私钥和数字证书并将它们添加到密钥库中,但此实用工具并不允许从文件中拾取现有的私钥并将其导入密钥库中。应改用 WebLogic ImportPrivateKey 实用工具。
    注意: keytool 实用工具不允许将可信 CA 证书从文件中导入至密钥库中。
  •  自定义实用工具。WebLogic Server 可使用由自定义工具或实用工具创建的密钥库。如何创建和使用这些实用工具已超出本文档的范围。

WebLogic Server 通过唯一的别名对密钥库中的所有私钥项进行访问。在将私钥加载到密钥库中时可指定别名。别名区分大小写;别名 Hugo 和 hugo 指的是同一密钥库项。私钥的别名是在 WebLogic Server 管理控制台的“配置”>“SSL”页的“私钥别名”字段中指定的。尽管 WebLogic Server 在访问可信 CA 证书时并不使用别名,但密钥库在将可信 CA 证书加载到密钥库时确实要求使用别名。

密钥库中由 WebLogic Server 识别为可信的所有证书颁发机构都为可信。

 


WebLogic Server 如何定位信任

WebLogic Server 在加载其可信 CA 证书时使用以下算法:

  1.  如果密钥库是由 -Dweblogic.security.SSL.trustedCAkeystore 命令行参数指定的,则将从密钥库加载可信 CA 证书。
  2.  否则,如果密钥库是在配置文件 (config.xml) 中指定的,则将从指定的密钥库加载可信 CA 证书。如果服务器是用 DemoTrust 配置的,将从 WL_HOME\server\lib\DemoTrust.jks 和 JDK cacerts 密钥库加载可信 CA 证书。
  3.  否则,如果可信 CA 文件是在配置文件 (config.xml) 中指定的,则将从此文件加载可信 CA 证书(这仅仅是为了与 6.x SSL 配置兼容)。
  4.  否则,将从 WL_HOME\server\lib\cacerts 密钥库加载可信 CA 证书。

 


配置用于生产环境的密钥库

默认情况下,WebLogic Server 配置有两个密钥库:

  •  DemoIdentity.jks - 包含 WebLogic Server 的演示私钥。此密钥库包含 WebLogic Server 的标识。
  •  DemoTrust.jks - 包含来自 WL_HOME\server\lib\DemoTrust.jks 的可信证书颁发机构和 JDK cacerts 密钥库。此密钥库可为 WebLogic Server 建立信任。

这些密钥库位于 WL_HOME\server\lib 目录中。对于测试和开发来说,密钥库配置是完全的。但是,请不要在生产环境中使用此演示密钥库。由于演示密钥库中的数字证书和可信 CA 证书是由 WebLogic Server 演示证书颁发机构签名的,所以使用演示密钥库的 WebLogic Server 安装将信任任何同样使用演示密钥库的 WebLogic Server 安装。需要创建只在您的安装之间互相信任的安全环境。

要配置生产环境中使用的密钥库,请执行以下操作:

  1.  从一家著名的证书颁发机构(如 Verisign, Inc. 或 Entrust.net)获取私钥和数字证书。请参阅获取私钥、数字证书和可信证书颁发机构
  2.  创建标识和信任密钥库。请参阅创建密钥库并将私钥和可信证书颁发机构加载到密钥库中
  3.  将私钥和可信 CA 加载到标识和信任密钥库中。请参阅创建密钥库并将私钥和可信证书颁发机构加载到密钥库中
  4.  使用 WebLogic Server 管理控制台可配置标识和信任密钥库。请参阅“管理控制台联机帮助”中的配置密钥库

也可以使用 WebLogic 脚本工具或 Java 管理扩展(Java Management Extensions,简称 JMX)API 创建新的安全配置。有关详细信息,请参阅 WebLogic 脚本工具使用 JMX 开发自定义管理实用工具手册。

配置 SSL

配置 SSL 是一个可选步骤;但是,BEA 建议在生产环境中使用 SSL。以下部分描述如何配置 WebLogic Server 的 SSL。

注意: 以下部分适用于使用本 WebLogic Server 版本中的安全功能的 WebLogic Server 部署以及使用兼容性安全的部署。
注意: 所有计算机都必须应用操作系统供应商当前推荐的修补程序集,以此来保持最新状态。

 


SSL:简介

安全套接口层(Secure Sockets Layer,简称 SSL)可使通过网络连接的两个应用程序相互对各自的标识进行身份验证,同时还可以对应用程序间的数据交换进行加密,以此来提供安全的连接。身份验证允许服务器和(可选)客户端对网络连接另一端的应用程序的标识进行验证。加密可以使通过网络传输的数据只被预定接收方识别。

WebLogic Server 中的 SSL 是 SSL 3.0 和传输层安全(Transport Layer Security,简称 TLS)1.0 规范的实现。

WebLogic Server 支持默认设置为 7002 的专用监听端口上的 SSL。要建立 SSL 连接,Web 浏览器通过在连接 URL 中提供 SSL 监听端口和 HTTP 协议而连接至 WebLogic Server,例如,https://myserver:7002

使用 SSL 是一项计算密集型操作,它会增加连接的开销。如无必要,应避免在开发环境中使用 SSL。但是,在生产环境中应始终使用 SSL。

 


单向和双向 SSL

可以将 SSL 配置为单向或双向:

  •  在单向 SSL 中,服务器必须向客户端提供证书,但客户端不必向服务器提供证书。客户端必须对服务器进行身份验证,但服务器可接受来自任何客户端的连接。在客户共享个人数据之前需要创建安全连接的 Internet 上,单向 SSL 十分常见。通常,客户端还使用 SSL 登录,以便服务器能够对它们进行身份验证。
  •  在双向 SSL(带客户端身份验证的 SSL)中,服务器和客户端将相互提供证书。可以将 WebLogic Server 配置为要求客户端提供有效的可信证书才能完成 SSL 连接。

 


设置 SSL:主要步骤

要设置 SSL,请执行下列步骤:

  1.  获取 WebLogic Server 的标识(私钥和数字证书)和信任(可信证书颁发机构颁发的证书)。执行此步骤时,可以使用由 WebLogic Server 工具包、CertGen 实用工具、Sun Microsystem 的 keytool 实用工具或诸如 Entrust 或 Verisign 之类的著名供应商提供的数字证书、私钥和可信 CA 证书。
  2.  存储标识和信任。指定了标识和信任的私钥和可信 CA 证书存储在密钥库中。
    注意: 此版本的 WebLogic Server 支持存储在文件或 WebLogic 密钥库提供程序中的私钥和可信 CA 证书,只是出于向后兼容目的。
  3.  在 WebLogic Server 管理控制台中配置 WebLogic Server 的标识和信任密钥库。请参阅“管理控制台联机帮助”中的配置密钥库
  4.  在 WebLogic Server 管理控制台中设置私钥别名和密码的 SSL 配置选项。可以设置要求提供客户端证书的配置选项(用于双向 SSL)。请参阅“管理控制台联机帮助”中的配置 SSL 和配置双向 SSL
注意: 启动 WebLogic Server 实例时,可以指定命令行参数 -Dweblogic.security.SSL.nojce=true,以便在服务器的 SSL 实现中使用 FIPS 兼容的(FIPS 140-2)的密码模块。FIPS 140-2 是美国联邦政府针对使用敏感但不保密信息的标准要求。

有关配置 WebLogic Server 的标识和信任的信息,请参阅获取私钥、数字证书和可信证书颁发机构存储私钥、数字证书和可信证书颁发机构

 


使用主机名验证

主机名验证器可确保客户端连接到的 URL 中的主机名与数字证书中服务器作为 SSL 连接的一部分发送回来的主机名相匹配。当 SSL 客户端(或充当 SSL 客户端的 WebLogic Server)连接到远程主机上的应用程序时,主机名验证器会非常有用。它有助于防止中间人攻击。

默认情况下,WebLogic Server 会启用主机名验证。作为 SSL 握手的一项功能,WebLogic Server 会将 SSL 服务器数字证书中的 SubjectDN 中的公用名与用于启动 SSL 连接的 SSL 服务器的主机名进行比较。如果这些名称不匹配,则会删除 SSL 连接。SSL 客户端是在名称不匹配时删除 SSL 连接的实际执行方。

如果需要执行默认行为之外的任何其他行为,可以关闭主机名验证或配置自定义主机名验证器。关闭主机名验证会使 WebLogic Server 易受到中间人攻击。BEA 建议在生产环境中保留主机名验证。

在此版本的 WebLogic Server 中已更新主机名验证功能,这样,当证书中的主机名与本地计算机的主机名匹配时,主机名验证会传递 URL 是指定 localhost127.0.01 还是本地计算机的默认 IP 地址。

有关详细信息,请参阅“管理控制台联机帮助”中的下列主题:

 


启用 SSL 调试

SSL 调试提供有关 SSL 握手期间发生的 SSL 事件的更为详细的信息。SSL 调试跟踪显示有关以下方面的信息:

  •  可信证书颁发机构
  •  SSL 服务器配置信息
  •  服务器标识(私钥和数字证书)
  •  所用许可证允许的加密强度
  •  已启用的密码
  •  SSL 握手期间传递的 SSL 记录
  •  由 WebLogic Server 检测到的 SSL 失败(例如,信任和有效性检查以及默认主机名验证器)
  •  I/O 相关信息

使用下列命令行属性可以启用 SSL 调试:

-Dssl.debug=true -Dweblogic.StdoutDebugEnabled=true

可以将 SSL 调试属性包含在 SSL 服务器、SSL 客户端和节点管理器的启动脚本中。对于由节点管理器启动的受管服务器,应在受管服务器的“远程启动”页上指定此命令行参数。

只要 SSL 进程中创建了 ALERT,SSL 调试都会转储堆栈跟踪。ALERT 的类型和严重程度由传输层安全(Transport Layer Security,简称 TLS)规范定义。

堆栈跟踪会将信息转储到生成 ALERT 的日志文件中。因此,当跟踪 SSL 问题时,可能需要在 SSL 连接的两端(SSL 客户端或 SSL 服务器)都启用调试。日志文件包含有关失败发生位置的详细信息。要确定发生 ALERT 的位置,请确认 ALERT 之后是否有一条跟踪消息。在跟踪消息后收到的 ALERT 指示失败发生在对等方上。要确定存在的问题,需要在 SSL 连接中的对等方上启用 SSL 调试。

在跟踪 SSL 问题时,请查看日志文件中的信息,以确保:

  •  加载了正确的 config.xml 文件
  •  许可证(内部或输出)正确
  •  可信证书颁发机构对此服务器有效且正确。
  •  主机名检查成功
  •  证书验证成功
注意: Sev 1 type 0 是一个正常的结束 ALERT,这不是问题。

 


SSL 会话行为

WebLogic Server 允许缓存 SSL 会话。这些会话的生命周期与服务器相同。

直接使用 SSL 套接口的客户端可以控制 SSL 会话缓存行为。SSL 会话缓存特定于每个 SSL 上下文。由特定 SSL 上下文返回的 SSL 套接口工厂实例所创建的所有 SSL 套接口都可以共享 SSL 会话。

客户端默认会恢复同一 IP 地址和端口处的会话。假定 SSL 套接口使用的是同一基础 SSL 上下文,则使用同一主机和端口的多个 SSL 套接口默认会共享 SSL 会话。

未配置为使用 SSL 会话的客户端必须调用 SSL 套接口上的 setEnableSessionCreation(false) 才能确保不缓存任何 SSL 会话。此设置仅控制是否将 SSL 会话添加到缓存中;它不会让 SSL 套接口停止查找已缓存的 SSL 会话。例如,SSL 套接口 1 已缓存了会话,SSL 套接口 2 将 setEnableSessionCreation 设置为 false,但它仍可以重用套接口 1 中的 SSL 会话,因为该会话已被置于缓存中。

SSL 会话在 SSL 上下文的生命周期中一直存在;SSL 会话不受 SSL 套接口的生命周期控制。因此,创建新的 SSL 套接口并连接到由以前会话使用的同一主机和端口可恢复以前的会话,但前提是创建 SSL 套接口时所使用的 SSL 套接口工厂来自其中已缓存了该 SSL 会话的 SSL 上下文。

默认情况下,使用 HTTPS URL 的客户端会获取每个 URL 的一个新的 SSL 会话,这是因为每个 URL 都使用不同的 SSL 上下文,因此无法共享或重用 SSL 会话。使用 weblogic.net.http.HttpsClient 类或weblogic.net.http.HttpsURLConnection 类可以检索 SSL 会话。客户端还可以通过相互共享 SSL 套接口工厂来恢复 URL。

会话缓存由 SSL 上下文维护,并可由多个线程共享。单个线程可以访问整个会话缓存,而不只是访问一个 SSL 会话,因此在单个(或多个)线程中可能使用和共享多个 SSL 会话。

将忽略下列命令行参数:

  •  weblogic.security.SSL.sessionCache.size
  •  weblogic.security.SSL.sessionCache.ttl

 


使用 SSL 配置 IIOP 上的 RMI

使用 SSL 可以保护到远程方法调用(Remote Method Invocation,简称 RMI)远程对象的互联网内部对象请求代理协议(Internet Interop-Orb-Protocol,简称 IIOP)连接。SSL 通过身份验证确保连接的安全并对对象间交换的数据进行加密。

要使用 SSL 保护 IIOP 连接上的 RMI,请执行下列操作:

  1.  将 WebLogic Server 配置为使用 SSL。
  2.  将客户端对象请求代理(Object Request Broker,简称 ORB)配置为使用 SSL。有关配置 SSL 的信息,请参阅客户端 ORB 的产品文档。
  3.  使用 host2ior 实用工具将 WebLogic Server IOR 打印到控制台。host2ior 实用工具打印两个版本的可互操作对象引用(interoperable object reference,简称 IOR),一个用于 SSL 连接,另一个用于非 SSL 连接。IOR 的头信息指定是否可以将 IOR 用于 SSL 连接。
  4.  在获取对访问 WebLogic Server JNDI 树的 CosNaming 服务的初始引用时,可以使用 SSL IOR。

有关在 IIOP 上使用 RMI 的详细信息,请参阅 WebLogic RMI 编程

 


SSL 证书验证

WebLogic Server 可确保证书链中的每个证书都是由证书颁发机构颁发的。WebLogic Server 使用的所有 X509 V3 CA 证书都必须将基本约束扩展定义为 CA,以此来确保证书链中的所有证书都是由证书颁发机构颁发的。默认情况下,由不符合此条件的证书颁发机构颁发的任何证书都会遭到拒绝。本部分描述控制证书验证级别的命令行参数。

注意: 如果用于启动 WebLogic Server 的证书链将不能通过证书验证,则会记录一条信息消息,指出客户端可能会拒绝此证书链。

控制证书验证的级别

默认情况下,WebLogic Server 将拒绝证书链中任何未将基本约束扩展定义为 CA 的证书。但是,您可能要使用不符合该要求的证书,或要提高安全级别以符合 IETF RFC 2459 标准。使用以下命令行参数可以控制 WebLogic Server 执行的证书验证级别:

-Dweblogic.security.SSL.enforceConstraints=option

表 11-1 描述了该命令行参数的选项。

表 11-1  -Dweblogic.security.SSL.enforceConstraints 的选项
选项
描述
strong 或  true
使用此选项可确保将 CA 证书上的基本约束扩展定义为 CA。
例如:
-Dweblogic.security.SSL.enforceConstraints=strong
-Dweblogic.security.SSL.enforceConstraints=true
默认情况下,WebLogic Server 将执行此级别的证书验证。
strict
使用此选项可确保将 CA 证书上的基本约束扩展定义为 CA 并设置为关键级别。此选项将强制实施 IETF RFC 2459 标准。
例如:
-Dweblogic.security.SSL.enforceConstraints=strict
此选项不是默认选项,因为很多商用 CA 证书并不符合 IETF RFC 2459 标准。
off
使用此选项可关闭对基本约束扩展的检查。但仍对证书的其他部分进行验证。
例如:
-Dweblogic.security.SSL.enforceConstraints=off
BEA 不建议在生产环境中使用此选项。而是应购买符合 IETF RFC 2459 标准的新 CA 证书。大多数商业证书颁发机构颁发的 CA 证书都应该能够使用默认的  strong 选项。

接受证书中的证书策略

WebLogic Server 对 X.509 证书中的证书策略扩展提供有限的支持。使用 weblogic.security.SSL.allowedcertificatepolicyids 参数可提供逗号分隔的证书策略 ID 列表。当 WebLogic Server 收到带有关键证书策略扩展的证书时,它将验证是否有任何证书出现在允许的证书策略列表上以及是否存在任何不受支持的策略限定符。此版本的 WebLogic Server 支持证书操作规定(Certification Practice Statement,简称 CPS)策略限定符,但不支持用户通知限定符。如果证书包含 ID 为 2.5.29.32.0A 的特殊策略 anyPolicy,则说明 CA 不希望限制该证书的策略集,因而也会接受该证书。

要使证书策略能够被接受,请使用以下参数启动 WebLogic Server:

-Dweblogic.security.SSL.allowedcertificatepolicyids <identifier1>,<identifier2>,...

对于证书链中可能出现的所有带关键扩展的证书,此参数应包含一个由它们的证书策略标识符构成的逗号分隔的列表,直至到达根证书,才能使 WebLogic Server 接受此类证书链。

检查证书链

使用 WebLogic Server ValidateCertChain 命令行实用工具可以确认现有证书链是否将受到 WebLogic Server 拒绝。此实用工具将验证来自 PEM 文件、PKCS-12 文件、PKCS-12 密钥库以及 JKS 密钥库的证书链。在此实用工具中,必须使用完整的证书链。以下是 ValidateCertChain 命令行实用工具的语法:

java utils.ValidateCertChain -file pemcertificatefilename
java utils.ValidateCertChain -pem pemcertificatefilename
java utils.ValidateCertChain -pkcs12store pkcs12storefilename
java utils.ValidateCertChain -pkcs12file pkcs12filename password
java utils.ValidateCertChain -jks alias storefilename [storePass]

有效证书链的示例:

java utils.ValidateCertChain -pem zippychain.pem

Cert[0]: CN=zippy,OU=FOR TESTING
ONLY,O=MyOrganization,L=MyTown,ST=MyState,C=US

Cert[1]: CN=CertGenCAB,OU=FOR TESTING
ONLY,O=MyOrganization,L=MyTown,ST=MyState,C=US
Certificate chain appears valid

无效证书链的示例:

java utils.ValidateCertChain -jks mykey mykeystore

Cert[0]: CN=corba1,OU=FOR TESTING ONLY, O=MyOrganization,L=MyTown,ST=MyState,C=US
CA cert not marked with critical BasicConstraint indicating it is a CA
Cert[1]: CN=CACERT,OU=FOR TESTING ONLY, O=MyOrganization,L=MyTown,ST=MyState,C=US

Certificate chain is invalid

使用证书查找和验证提供程序

WebLogic Server SSL 包含内置的证书验证。在给定一组可信 CA 时,此验证将:

  •  验证链中的最后一个证书是可信 CA 还是由可信 CA 所颁发的。
  •  使用可信 CA 完成证书链。
  •  验证链中的签名。
  •  确保链尚未过期。

可以使用证书查找和验证(Certificate Lookup and Validation,简称 CLV)提供程序对证书链执行额外的验证。在此版本中,WebLogic Server 新增了两个 CLV 提供程序:

  •  WebLogic CertPath 提供程序 – 使用为特定服务器实例配置的可信 CA 完成证书路径并验证证书,它提供与内置的 SSL 证书验证相同的功能。默认情况下会配置此提供程序。
  •  证书注册表 – 系统管理员会建立一个允许访问服务器的可信 CA 证书列表;如果结束证书位于该注册表中,则该证书有效。管理员可通过从证书注册表中删除证书来撤消证书,这是一种执行撤消检查的廉价机制。默认情况下不配置证书注册表。

另外,还可以编写自定义 CertPathValidator 来提供对证书链的额外验证。请参阅“开发 WebLogic Server 的安全提供程序”中的 CertPath 提供程序

WebLogic Server 中的 SSL 证书验证如何工作

WebLogic Server 实例中的出站 SSL 和双向入站 SSL 接收 SSL 握手期间必须已通过验证的证书链。一个双向入站 SSL 的示例是:通过 HTTPS 连接到 Web 应用程序的浏览器,其中浏览器向 Web 应用程序发送客户端的证书链。此入站证书验证设置可用于服务器中的所有双向客户端证书验证。

使用出站 SSL 的 WebLogic Server(即充当 SSL 客户端)的示例包括:

  •  连接到节点管理器
  •  通过管理端口连接到另一个 WebLogic Server 实例
  •  连接到外部 LDAP 服务器,例如 LDAPAuthenticator

通过管理控制台或 WLST,可以使用下列 SSLMBean 特性独立配置入站和出站 SSL 证书验证:InboundCertificateValidation 和 OutboundCertificateValidation

这两个特性的合法值为:

  •  BUILTIN_SSL_VALIDATION:使用内置的 SSL 证书验证代码完成并验证证书链。即,将 SSL 配置为它在以前版本中的工作方式。这是默认行为。
  •  BUILTIN_SSL_VALIDATION_AND_CERT_PATH_VALIDATORS:使用内置的基于可信 CA 的验证和经过配置的 CertPathValidator 提供程序执行额外验证。即,将 SSL 配置为它在以前版本中的工作方式并执行额外的验证。

请参阅:

对证书验证问题进行故障排除

如果在以前版本的 WebLogic Server 中运行正常的 SSL 通信开始出现意外失败,则可能的问题是证书链未能通过验证。

确定证书链中受到拒绝的位置,然后决定是将该证书链更新为将被接受的证书链,还是更改 -Dweblogic.security.SSL.enforceConstraints 命令行参数的设置。

要解决证书问题,请使用下列方法之一:

  •  如果已知使用 SSL 通信的进程的证书链所在的位置,请使用 ValidateCertChain 命令行实用工具检查是否将接受该证书链。
  •  对使用 SSL 通信的进程启用 SSL 调试跟踪。SSL 调试跟踪的语法为:

    -Dssl.debug=true -Dweblogic.StdoutDebugEnabled=true

    以下消息指示因证书链中的问题而导致的 SSL 失败:

    <CA certificate rejected.The basic constraints for a CA certificate were not marked for being a CA, or were not marked as critical>

    如果使用单向 SSL,请在客户端日志中查找此错误。如果使用双向 SSL,请在客户端和服务器的日志中查找此错误。

 


在 WebLogic Server 中使用 nCipher JCE 提供程序

注意: Java 加密扩展(Java Cryptography Extension,简称 JCE)提供程序是用 JDK 5.0 中提供的可用 JCE 中的应用程序编程接口(Application Programming Interface,简称 API)编写的。此类型的提供程序与使用 WebLogic 安全服务提供程序接口(Security Service Provider Interface,简称 SSPI)编写的提供程序不同。默认情况下,WebLogic Server 不提供 JCE 提供程序。

SSL 是保护 Web 服务器中可用资源的关键组件。但是,过多的 SSL 流量可导致出现影响 Web 服务器性能的瓶颈。使用硬件卡进行加密的 JCE 提供程序(如 nCipher)可从 Web 服务器减轻 SSL 处理负担,从而将服务器释放出来以处理其他事务。它们还提供强加密和密码处理,可以保护密钥的完整性和机密性。

WebLogic Server 支持使用下列 JCE 提供程序:

  •  JDK 5.0 中的 JDK JCE 提供程序 (SunJCE)。有关 JDK JCE 提供程序中的功能的详细信息,请访问 http://java.sun.com/products/jce

    默认情况下,JDK 5.0 中的 JCE 提供程序具有输出强权限策略文件。在填写适当的表单后,可以从 Sun Microsystems 下载这些内部强权限策略文件,网址为http://java.sun.com/products/jce/javase.html#UnlimitedDownload

    BEA 许可证将继续控制由 WebLogic Server 应用程序编程接口 (API) 使用的加密强度。对于不具有适当的内部强加密许可证的客户端代码,只能使用默认的 J2SE 输出强加密。在服务器上将始终有一个 BEA 许可证来启用输出或内部强加密。

  •  nCipher JCE 提供程序。请访问 http://www.ncipher.com

要安装 nCipher JCE 提供程序,请执行下列操作:

  1.  按照产品文档为 nCipher JCE 提供程序安装和配置硬件。
  2.  安装 nCipher JCE 提供程序的文件。需要安装下列文件:
    •  权限策略文件 – 默认情况下,JDK 会安装这些文件,但它们的输出强度有限。
    •  签署 JAR 文件的证书
      注意: 在为 nCipher JCE 提供程序安装硬件的过程中,可能已执行此步骤。在该情况下,请验证是否已正确安装了这些文件。
    •  JCE 提供程序 JAR 文件

      选择文件的安装方法:

    •  将文件安装为扩展。将文件复制到下列位置之一:

      JAVA_HOME/jre/lib/ext

      例如:

      BEA_HOME/jdk150_03/jre/lib/ext

    •  安装服务器的 CLASSPATH 中的文件。
  3.  编辑 Java 安全性属性文件 (java.security),以将 nCipher JCE 提供程序添加到 WebLogic Server 批准的 JCE 提供程序列表中。该 Java 安全性属性文件位于:

    JAVA_HOME/jre/lib/security/java.security

    将 nCipher JCE 提供程序指定为:

    security.provider.n=com.ncipher.provider.km.mCipherKM

    其中

    n 指定当未请求特定的提供程序时,用于确定在提供程序中搜索所请求的算法的首选顺序。顺序为从 1开始,1 是最优先的顺序,2 次之,依此类推。

    在安全性属性文件中,nCipher JCE 提供程序必须位于 RSA JCA 提供程序之后。例如:

    security.provider.1=sun.security.provider.Sun

    security.provider.2=com.sun.rsajca.Provider

    security.provider.3=com.ncipher.provider.km.mCipherKM

  4.  启动 WebLogic Server。
  5.  要确保 nCipher JCE 提供程序正常运行,请按照 nCipher 产品文档的说明启用调试。

 


指定 SSL 协议的版本

WebLogic Server 支持 SSL 版本 3.0 和 TLS 版本 1.0 协议。当 WebLogic Server 充当 SSL 服务器时,它会在自己的客户端问候消息中将 SSL 版本 3.0 协议指定为首选协议。当 WebLogic Server 充当 SSL 客户端时,它会在自己的 SSL 版本 2.0 客户端问候消息中将 TLS1.0 指定为首选协议。但是,如果 SSL 版本 3.0 是另一端的 SSL 服务器所支持的最高版本,则也可以使用 SSL 版本 3.0。对等方必须使用 SSL 版本 3.0 或 TLS 版本 1.0 消息进行响应,否则将删除 SSL 连接。

虽然大多数情况下都接受 SSL 版本 3.0 协议,但某些情况(兼容性、SSL 性能和具有最高安全性要求的环境)使 TLS 版本 1.0 协议更为理想。使用 weblogic.security.SSL.protocolVersion 命令行参数可以指定要用于 SSL 连接的协议。

注意: SSL 版本 3.0 和 TLS 版本 1.0 协议不能互换。只有在可确定所有需要的 SSL 客户端都能够使用 TLS 版本 1.0 协议时,才能使用该协议。

可以指定以下命令行参数,以使 WebLogic Server 仅支持 SSL 版本 3.0 或 TLS 版本 1.0 连接:

  •  -Dweblogic.security.SSL.protocolVersion=SSL3 - 仅发送和接受 SSL 版本 3.0 消息。
  •  -Dweblogic.security.SSL.protocolVersion=TLS1 - 仅发送和接受 TLS 版本 1.0 消息。
  •  -Dweblogic.security.SSL.protocolVersion=ALL - 这是默认行为。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: dsigntool代码签名数字证书含有私钥数字证书是一种用于验证和保护代码的安全工具。它通常由一个颁发机构颁发,其中包含了代码签名所需的信息。在数字证书中,私钥是一种加密密钥,只有持有者拥有。私钥用于生成和验证数字签名,以确保代码的身份和完整性。 使用dsigntool工具进行代码签名时,我们需要提供含有私钥数字证书。这个私钥只有我们能够访问,它不会公开或泄露给他人。在进行代码签名时,dsigntool工具使用私钥对代码进行加密,生成数字签名。数字签名是一种用于证明代码真实性和完整性的数学认证,类似于一个独特的指纹。 使用数字证书含有私钥的好处是多方面的。首先,私钥的保护确保了代码签名的安全性。只有持有者能够使用私钥进行签名,因此可以防止未经授权的个人或组织对代码进行篡改。其次,私钥的存在使得代码签名可以进行验证。通过验证数字签名,我们可以确定代码是否来自可信的源,并且在传输过程中是否被篡改。 总之,dsigntool代码签名数字证书含有私钥,这使得我们可以进行安全的代码签名操作,并且能够对签名的代码进行验证,以确保其来源和完整性。 ### 回答2: dsigntool代码签名数字证书是一种用于保护软件的安全性和完整性的数字证书。它不仅包含了公钥,还包含了私钥私钥证书所有者独有的,并且被严格保密。它是签名和解密文件的关键元素。私钥用于创建数字签名,以证明文件的真实性和完整性。只有拥有私钥的人才能够生成有效的数字签名。 dsigntool代码签名数字证书私钥是通过密钥对生成的。密钥对由公钥和私钥组成,这两个密钥是成对生成的,彼此之间是相关联的。公钥可以与其他人共享,以验证数字签名的有效性,而私钥则必须仅由证书所有者掌握。 当使用dsigntool代码签名数字证书进行代码签名时,私钥被用于生成数字签名,并将其与代码文件绑定在一起。在安装或执行已签名代码时,操作系统或应用程序会使用证书的公钥验证数字签名的有效性,以保证代码的来源可靠和完整。 因为私钥非常重要且敏感,所以必须采取严格的安全措施来保护它。私钥通常存储在安全的密钥库中,只有授权的人员才能访问。此外,定期更换私钥也是一个安全最佳实践,以减少私钥泄露和滥用的风险。 总而言之,dsigntool代码签名数字证书含有私钥私钥是用于生成数字签名和保护代码完整性的关键元素,因此必须严格保护和管理私钥的安全。 ### 回答3: dsigntool代码签名数字证书是一种包含私钥证书,用于对代码进行数字签名。数字签名是一种加密技术,通过将代码与私钥相结合,生成一个唯一的标识符,以证明代码的真实性和完整性。 代码签名的过程是将代码文件与私钥进行哈希运算,生成一个摘要,然后使用私钥对摘要进行加密,生成数字签名。这个数字签名与代码文件一起发布或分发给用户。当用户运行这个代码时,系统将自动验证数字签名的有效性。 私钥的存在使得数字签名具有不可伪造性和可信度。私钥只有证书持有者拥有,因此不能被他人篡改或伪造。这样,用户可以根据数字签名验证代码的来源和完整性,确保代码未被篡改或植入恶意软件。 dsigntool代码签名数字证书私钥,提供了方便和安全的代码签名解决方案。代码开发者可以使用dsigntool将代码与私钥结合,生成数字签名,证明代码的真实性与完整性。用户可以根据数字签名来验证代码的来源和完整性,避免运行未经验证的不安全代码。 总之,dsigntool代码签名数字证书私钥是一种保证代码真实性和完整性的安全解决方案,为代码的发布和分发提供了可靠的保障。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值