第 3 章 保护 Fuse 控制台
在 Apache Karaf 上保护 Fuse 控制台:
在部署到 AWS 时禁用 Fuse Console 的代理 servlet
如果要将独立 Fuse 应用程序部署到 Amazon Web Services (AWS),您应该通过将
hawtio.disableProxy
系统属性设置为true
来禁用 Fuse 控制台的代理 servlet。注意当您禁用 Fuse Console 代理 servlet 时,Fuse Console 的 Connect 选项卡被禁用,您无法从 Fuse 控制台连接到其他 JVM。如果要在 AWS 上部署多个 Fuse 应用程序,您必须为每个应用程序部署 Fuse 控制台。
将 HTTPS 设置为所需的协议
您可以使用
hawtio.http.strictTransportSecurity
属性要求 Web 浏览器使用安全 HTTPS 协议来访问 Fuse 控制台。此属性指定尝试使用 HTTP 访问 Fuse 控制台的 Web 浏览器必须自动转换请求以使用 HTTPS。使用公钥保护响应
您可以使用
hawtio.http.publicKeyPins
属性来保护 HTTPS 协议,方法是告诉 Web 浏览器将特定的加密公钥与 Fuse 控制台关联,以减少对伪证书进行"man-in-the-middle"攻击的风险。启用 SSL/TLS 安全性
默认情况下,Fuse 控制台不启用 SSL/TLS 安全性。建议您在 Fuse 控制台中启用 SSL/TLS 安全性,以保护用户名/密码凭证不受 snooping 的影响。
- 实施 Red Hat Single Sign On
控制用户访问
允许经过身份验证的用户执行的操作取决于分配给该用户的角色(或角色),如 表 4.1 “基于角色的访问,在 Karaf 独立上” 中列出的。
流程
要将 HTTPS 设置为所需的协议,请在
$KARAF_HOME/system.properties 文件中设置
属性,如下例所示:hawtio.http.
strictTransportSecurityhawtio.http.strictTransportSecurity = max-age=31536000; includeSubDomains; preload
要使用公钥来保护响应,请在
$KARAF_HOME/system.properties 文件中设置
属性,如下例所示:hawtio.http.
publicKeyPinshawtio.http.publicKeyPins = pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs"; max-age=5184000; includeSubDomains
(对于仅在 AWS 上部署)要禁用 Fuse 控制台的代理 servlet,请在
$KARAF_HOME/etc/system.properties
文件中将hawtio.disableProxy
属性设置为true
,如下例所示:hawtio.disableProxy = true;
- 有关如何启用 SSL/TLS 安全性的详细信息,请参阅 Apache Karaf 安全指南 中的"为 Undertow 启用 SSL/TLS"部分。
- 有关如何使用红帽单点登录保护 Fuse 控制台的详情,请参考 Red Hat Single Sign-on Securing Applications and Services Guide 中的保护 Hawtio 管理控制台的章节。
要确保用户具有必要的用户角色授权来执行用户需要执行的 Fuse 控制台操作,请按照以下步骤设置用户角色:
-
在编辑器中打开 Red Hat Fuse
etc/users.properties
文件。 为用户名、密码和角色添加一个条目。
例如,
etc/users.properties
文件中的以下条目定义了 admin 用户并授予 admin 角色。admin = secretpass,admin
- 保存该文件。
-
在编辑器中打开 Red Hat Fuse
其他资源
-
有关
hawtio.http.strictTransportSecurity
属性的语法的描述,请参阅 HTTP Strict Transport Security (HSTS) 响应标头的描述页面。 -
有关
hawtio.http.publicKeyPins
属性的语法的描述,包括如何提取 Base64 编码公钥的说明,请参阅 HTTP 公钥 Pinning 响应标头 的描述页面。