Sun Java System Application Server Enterprise Edition 8.2 管理指南

关于安全套接字层

安全套接字层 (Secure Socket Layer, SSL) 是用来确保 Internet 通信和事务安全的最常见的标准。Web 应用程序使用 HTTPS(基于 SSL 的 HTTP),HTTPS 使用数字证书来确保在服务器和客户机之间进行安全、保密的通信。在 SSL 连接中,客户机和服务器在发送数据之前都要对数据进行加密,然后由收件人对其进行解密。

当 Web 浏览器(客户机)需要与某个安全站点建立连接时,则会发生 SSL 握手

握手之后,即表示客户机已检验了 Web 站点的身份,并且只有该客户机和 Web 服务器拥有会话密钥副本。从现在开始,客户机和服务器便可以使用该会话密钥对彼此间的所有通信进行加密。这样就确保了客户机和服务器之间的通信的安全性。

SSL 标准的最新版本称为 TLS(传输层安全性)。Application Server 支持安全套接字层 (Secure Socket Layer, SSL) 3.0 和传输层安全性 (Transport Layer Security, TLS) 1.0 加密协议。

要使用 SSL,Application Server 必须拥有接受安全连接的每个外部接口或 IP 地址的证书。只有安装了数字证书之后,大多数 Web 服务器的 HTTPS 服务才能够运行。使用使用 keytool 实用程序生成证书中介绍的过程来设置您的 Web 服务器可用于 SSL 的数字证书。

关于加密器

加密器是用于加密或解密的加密算法。SSL 和 TLS 协议支持用于服务器和客户机彼此进行验证、传输证书和建立会话密钥的各种加密器。

某些加密器比其他加密器更强大且更安全。客户机和服务器可以支持不同的密码组。从 SSL3 和 TLS 协议中选择加密器。在安全连接期间,客户机和服务器同意在通信中使用它们均已启用的最强大的加密器,因此通常需要启用所有加密器。

使用基于名称的虚拟主机

对安全应用程序使用基于名称的虚拟主机可能会带来问题。这是 SSL 协议本身的设计限制。必须先进行 SSL 握手(客户机浏览器在这时接受服务器证书),然后才能访问 HTTP 请求。这样,在验证之前就无法确定包含虚拟主机名的请求信息,因此也不能将多个证书指定给单个 IP 地址。

如果单个 IP 地址上的所有虚拟主机都需要通过同一证书的验证,则添加多个虚拟主机将不会影响服务器上正常的 SSL 操作。但是请注意,大多数浏览器会将服务器的域名与证书中列出的域名(如果有的话,也主要适用于官方的 CA 签名证书)进行比较。如果域名不匹配,这些浏览器将显示警告。通常在生产环境中,只将基于地址的虚拟主机与 SSL 一起使用。