2.4. 保护 Fuse 控制台

在 Spring Boot 上保护 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"攻击的风险。

流程

  1. 设置 hawtio.http.strictTransportSecurityhawtio.http.publicKeyPins 属性,如下例所示:

    public static void main(String[] args) {
        System.setProperty("hawtio.http.strictTransportSecurity", "max-age=31536000; includeSubDomains; preload");
        System.setProperty("hawtio.http.publicKeyPins", "pin-sha256=cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs"; max-age=5184000; includeSubDomains");
        SpringApplication.run(YourSpringBootApplication.class, args);
    }
  2. (仅用于在 AWS 上部署)要禁用 Fuse 控制台的代理 servlet,请设置 hawtio.disableProxy 属性,如下例所示:

    public static void main(String[] args) {
        System.setProperty("hawtio.disableProxy", "true");
    }

其他资源