首页 > 解决方案 > 如何为 jetty 9.2.25 设置严格的传输安全标头

问题描述

我正在尝试为我的码头服务器 9.2.25 添加严格的传输安全标头

我试图将规则添加到我的 jetty-config.xml,但它似乎不起作用。

 <Get id="oldhandler" name="handler"/>
    <Set name="handler">
      <New id="Rewrite" class="org.eclipse.jetty.rewrite.handler.RewriteHandler">
        <Set name="handler">
           <Ref id="oldhandler"/>
        </Set>
        <Set name="rewriteRequestURI">true</Set>
        <Set name="rewritePathInfo">false</Set>
        <Set name="originalPathAttribute">requestedPath</Set>

        <Call name="addRule">
            <Arg>
                <New class="org.eclipse.jetty.rewrite.handler.HeaderPatternRule">
                    <Set name="pattern">/*</Set>
                    <Set name="name">Strict-Transport-Security</Set>
                    <Set name="value">max-age=31536000;includeSubDomains</Set>
                </New>
            </Arg>
        </Call>
      </New>
    </Set>

为了检查它是否正常工作,我尝试查看 curl 输出,它没有显示 Strict-Transport-Security 信息。实际上,它应该在 curl 输出中显示以下行。

严格的传输安全性:max-age=31536000;包括子域

root@ip:~#curl -k --head https://ip:443

HTTP/1.1 200 正常

X-Frame-选项:拒绝

内容类型:text/html;charset=UTF-8

设置 Cookie:JSESSIONID=157bfeip315gbmb796uh2yq4m;路径=/;安全

过期:1970 年 1 月 1 日星期四 00:00:00 GMT

Pragma:无缓存

缓存控制:无存储

内容长度:8246

服务器:码头(9.2.25.v20180606)

请让我知道此配置中是否需要任何更改/配置码头 Web 服务器以添加 HSTS 标头的任何其他方式。

谢谢你的帮助。

标签: jettyhstsstrict-transport-security

解决方案


你试过这个:

<Set name="rules">
   <Array type="org.eclipse.jetty.rewrite.handler.Rule">
      <Item>
        <New id="header" class="org.eclipse.jetty.rewrite.handler.HeaderPatternRule">
        <Set name="pattern">*</Set>
        <Set name="name">Strict-Transport-Security</Set>
        <Set name="value">max-age=31536000;includeSubDomains</Set>
     </New>
      </Item>
   </Array>
</Set>

推荐阅读