[ 
https://issues.apache.org/jira/browse/HDDS-17542?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Siyao Meng updated HDDS-17542:
------------------------------
    Description: 
Since HDDS-15152, {{HttpServer2}} always applies the configured enabled 
protocols to Jetty. When {{ozone.ssl.enabled.protocols}} is not set, it falls 
back to {{hadoop.ssl.enabled.protocols}}, which {{core-default.xml}} sets to 
{{TLSv1.2}}. So with no SSL protocol configuration at all, the S3 Gateway and 
all component web UIs reject TLSv1.3 and only negotiate TLSv1.2. Before 
HDDS-10819, Jetty's defaults (TLSv1.2 and TLSv1.3) were used.

Reproduce: start S3 Gateway with HTTPS and no {{*.ssl.enabled.protocols}} 
settings, then connect with a TLSv1.3-only client:

{code}
openssl s_client -connect <s3g-host>:9879 -tls1_3
{code}

The handshake fails with {{protocol_version}}. A client offering both versions 
negotiates TLSv1.2.

Workaround: set {{ozone.ssl.enabled.protocols}} explicitly in 
{{ozone-site.xml}} for the affected services (S3 Gateway and any component 
whose web UI should accept TLSv1.3), then restart them:

{code:xml}
<property>
  <name>ozone.ssl.enabled.protocols</name>
  <value>TLSv1.2,TLSv1.3</value>
</property>
{code}

Proposed fix: use {{hadoop.ssl.enabled.protocols}} only when it is explicitly 
configured (not just inherited from {{core-default.xml}}), otherwise default to 
{{TLSv1.2,TLSv1.3}}. {{ozone.ssl.enabled.protocols}} keeps precedence, and an 
explicit {{TLSv1.2}} (the case HDDS-15152 fixed) is still honored.

  was:
Since HDDS-15152, {{HttpServer2}} always applies the configured enabled 
protocols to Jetty. When {{ozone.ssl.enabled.protocols}} is not set, it falls 
back to {{hadoop.ssl.enabled.protocols}}, which {{core-default.xml}} sets to 
{{TLSv1.2}}. So with no SSL protocol configuration at all, the S3 Gateway and 
all component web UIs reject TLSv1.3 and only negotiate TLSv1.2. Before 
HDDS-10819, Jetty's defaults (TLSv1.2 and TLSv1.3) were used.

Reproduce: start S3 Gateway with HTTPS and no {{*.ssl.enabled.protocols}} 
settings, then connect with a TLSv1.3-only client:

{code}
openssl s_client -connect <s3g-host>:9879 -tls1_3
{code}

The handshake fails with {{protocol_version}}. A client offering both versions 
negotiates TLSv1.2.

Proposed fix: use {{hadoop.ssl.enabled.protocols}} only when it is explicitly 
configured (not just inherited from {{core-default.xml}}), otherwise default to 
{{TLSv1.2,TLSv1.3}}. {{ozone.ssl.enabled.protocols}} keeps precedence, and an 
explicit {{TLSv1.2}} (the case HDDS-15152 fixed) is still honored.


> Re-enable TLSv1.3 by default on Ozone HTTPS endpoints
> -----------------------------------------------------
>
>                 Key: HDDS-17542
>                 URL: https://issues.apache.org/jira/browse/HDDS-17542
>             Project: Apache Ozone
>          Issue Type: Bug
>          Components: Security, server-framework
>    Affects Versions: 2.2.0, 2.2.1
>            Reporter: Siyao Meng
>            Assignee: Siyao Meng
>            Priority: Major
>              Labels: pull-request-available
>
> Since HDDS-15152, {{HttpServer2}} always applies the configured enabled 
> protocols to Jetty. When {{ozone.ssl.enabled.protocols}} is not set, it falls 
> back to {{hadoop.ssl.enabled.protocols}}, which {{core-default.xml}} sets to 
> {{TLSv1.2}}. So with no SSL protocol configuration at all, the S3 Gateway and 
> all component web UIs reject TLSv1.3 and only negotiate TLSv1.2. Before 
> HDDS-10819, Jetty's defaults (TLSv1.2 and TLSv1.3) were used.
> Reproduce: start S3 Gateway with HTTPS and no {{*.ssl.enabled.protocols}} 
> settings, then connect with a TLSv1.3-only client:
> {code}
> openssl s_client -connect <s3g-host>:9879 -tls1_3
> {code}
> The handshake fails with {{protocol_version}}. A client offering both 
> versions negotiates TLSv1.2.
> Workaround: set {{ozone.ssl.enabled.protocols}} explicitly in 
> {{ozone-site.xml}} for the affected services (S3 Gateway and any component 
> whose web UI should accept TLSv1.3), then restart them:
> {code:xml}
> <property>
>   <name>ozone.ssl.enabled.protocols</name>
>   <value>TLSv1.2,TLSv1.3</value>
> </property>
> {code}
> Proposed fix: use {{hadoop.ssl.enabled.protocols}} only when it is explicitly 
> configured (not just inherited from {{core-default.xml}}), otherwise default 
> to {{TLSv1.2,TLSv1.3}}. {{ozone.ssl.enabled.protocols}} keeps precedence, and 
> an explicit {{TLSv1.2}} (the case HDDS-15152 fixed) is still honored.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to