第 4 章 配置 HTTPS 加密套件
摘要
本章解释了如何指定提供给客户端和服务器的密码套件列表,以建立 HTTPS 连接。在安全握手过程中,客户端选择一个与服务器可用的密码套件匹配的密码套件。
4.1. 支持的加密套件
概述
密码套件 是安全算法的集合,用于精确地实施 SSL/TLS 连接。
例如,SSL/TLS 协议强制使用消息摘要算法签名该消息。但是,摘要算法的选择由用于连接的特定密码套件决定。通常,应用程序可以选择 MD5 或 SHA 摘要算法。
Apache CXF 中可用于 SSL/TLS 安全性的密码套件取决于端点上指定的特定 JSSE 供应商。
JCE/JSSE 和安全供应商
Java Cryptography Extension (JCE)和 Java 安全套接字扩展(JSSE)构成了一个可插拔框架,允许您将 Java 安全实施替换为任何第三方工具包,称为 安全供应商。
SunJSSE 供应商
实际上,Apache CXF 的安全功能仅用于 SUN 的 JSSE 供应商(名为 SunJSSE
)。
因此,Apache CXF 中的 SSL/TLS 实现和 Apache CXF 可用密码套件列表实际上由 SUN 的 JSSE 供应商提供的内容决定。
SunJSSE 支持的密码套件
J2SE 1.5.0 Java 开发套件中的 SUN 的 JSSE 供应商支持以下密码套件(另请参见 SUN 的 JSSE 参考指南 附录 A ):
标准密码:
SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA SSL_DHE_DSS_WITH_DES_CBC_SHA SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA SSL_DHE_RSA_WITH_DES_CBC_SHA SSL_RSA_EXPORT_WITH_DES40_CBC_SHA SSL_RSA_EXPORT_WITH_RC4_40_MD5 SSL_RSA_WITH_3DES_EDE_CBC_SHA SSL_RSA_WITH_DES_CBC_SHA SSL_RSA_WITH_RC4_128_MD5 SSL_RSA_WITH_RC4_128_SHA TLS_DHE_DSS_WITH_AES_128_CBC_SHA TLS_DHE_DSS_WITH_AES_256_CBC_SHA TLS_DHE_RSA_WITH_AES_128_CBC_SHA TLS_DHE_RSA_WITH_AES_256_CBC_SHA TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA TLS_KRB5_EXPORT_WITH_RC4_40_MD5 TLS_KRB5_EXPORT_WITH_RC4_40_SHA TLS_KRB5_WITH_3DES_EDE_CBC_MD5 TLS_KRB5_WITH_3DES_EDE_CBC_SHA TLS_KRB5_WITH_DES_CBC_MD5 TLS_KRB5_WITH_DES_CBC_SHA TLS_KRB5_WITH_RC4_128_MD5 TLS_KRB5_WITH_RC4_128_SHA TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA
null 加密,仅完整性密码:
SSL_RSA_WITH_NULL_MD5 SSL_RSA_WITH_NULL_SHA
匿名 Diffie-Hellman 密码(无身份验证):
SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA SSL_DH_anon_EXPORT_WITH_RC4_40_MD5 SSL_DH_anon_WITH_3DES_EDE_CBC_SHA SSL_DH_anon_WITH_DES_CBC_SHA SSL_DH_anon_WITH_RC4_128_MD5 TLS_DH_anon_WITH_AES_128_CBC_SHA TLS_DH_anon_WITH_AES_256_CBC_SHA
JSSE 参考指南
有关 SUN 的 JSSE 框架的更多信息,请参阅 JSSE 参考指南,网址为:
http://download.oracle.com/javase/1.5.0/docs/guide/security/jsse/JSSERefGuide.html