11.12. SSL 加密
11.12.1. 对 JBoss EAP 6 Web 服务器实施 SSL 加密
介绍
许多 web 应用程序都要求对客户端和服务器间的连接进行 SSL 加密,这也被称为 HTTPS
连接。你可以通过这个过程对服务器或服务器组启用 HTTPS
。
前提条件
- 您需要一系列 SLL 加密密钥和加密证书。你可以从证书签名机构购买或者使用命令行工具来生成。关于使用红帽企业版 Linux 里的可用工具来生成加密密钥,请参考 第 11.12.2 节 “生成 SSL 密钥和证书”。
- 您的环境和设置的细节:
- 证书文件所在的完整目录名。
- 你的加密密钥的密码。
- 连接域控制器或独立服务器的管理 CLI 命令。
注意
这个过程使用适合用于受管域的 JBoss EAP 6 配置的命令。如果你使用的是独立服务器,请从任何管理 CLI 命令的开头将
/profile=default
删除。
过程 11.39. 配置 JBoss Web 服务器以使用 HTTPS
添加新的 HTTPS 连接器。
执行下列管理 CLI 命令来修改配置。这会创建一个新的加密连接器,名为HTTPS
。它使用https
模式、https
套接字绑定(默认为8443
端口),且被设置为安全的。例 11.36. 管理 CLI 命令
/profile=default/subsystem=web/connector=HTTPS/:add(socket-binding=https,scheme=https,protocol=HTTP/1.1,secure=true)
- 执行下列管理 CLI 命令来设置协议为
TLSv1
。例 11.37. 管理 CLI 命令
/profile=default/subsystem=web/connector=HTTPS/ssl=configuration/:write-attribute(name=protocol,value=TLSv1)
选择合适的加密套件
加密套件由使用大量的加密类型的构建模块组成。第一个表列出了我们推荐的加密类型。第二个表列出可能用来和现有软件兼容的加密类型,它们不具备和我们所推荐的相等的安全性。警告
Red Hat 推荐在加密套件(cipher-suite)
里使用其白名单上的强密码。启用弱加密会导致重大的安全风险。在确定加密套件至前,请阅读 JDK 供应商的文档,因为它们可能会有兼容性问题。表 11.9. 推荐的加密类型 具有 2048 位密钥和 OAEP 的 RSA CBC 模式的 AES-128 SHA-256 HMAC-SHA-256 HMAC-SHA-1 表 11.10. 其他加密类型 具有大于 1024 密钥及传统 padding 的 RSA AES-192 AES-256 3DES(三重 DES,带有两个或三个 56 位的密钥) RC4(极不推荐) SHA-1 HMAC-MD5 关于连接器的 SSL 属性参数的完整列表,请参考 第 11.12.3 节 “SSL 连接器引用”。配置 SSL 加密证书和密钥。
执行下列 CLI 命令来配置你的 SSL 证书,请用自己的值来替换例子里的值。这个例子假设密钥库被复制到服务器的配置目录,对于受管域来说,也就是EAP_HOME/domain/configuration/
。例 11.38. 管理 CLI 命令
/profile=default/subsystem=web/connector=HTTPS/ssl=configuration:add(name=https,certificate-key-file="${jboss.server.config.dir}/keystore.jks",password=SECRET, key-alias=KEY_ALIAS, cipher-suite=CIPHERS)
部署应用程序。
部署一个使用你已经配置好的配置集的应用程序到服务器组。如果你使用的是独立服务器,将这个应用程序部署至服务器。它的 HTTPS 请求将使用新的 SSL 加密的连接。