doris icon indicating copy to clipboard operation
doris copied to clipboard

[feature](mysql) Support secure MySQL connection to FE

Open Yukang-Lian opened this issue 2 years ago • 29 comments

Proposed changes

Issue Number: close #16313

Problem summary

Background: Doris currently does not support SSL connection from MySQL clients, it's not secure enough in some cases, especially access Doris via the public internet.

Solution:

  • Use TLS1.2 protocol to encrypt information.
  • Implementation details
    • server <--- connect <--- client
    • if enable SSL: {
    • server <--- SSL connection request packet <--- client
    • server <--- SSL Exchange ---> client } (we will add this if logic part in this PR)
    • server ---> handshake request packet ---> client
    • server <--- encrypted data ---> client (this part will be realized in this PR)
  • reference1 https://dev.mysql.com/doc/dev/mysql-server/latest/page_protocol_connection_phase.html#sect_protocol_connection_phase_initial_handshake_ssl_handshake
  • reference2 https://www.rfc-editor.org/rfc/rfc5246

close #16313

Signed-off-by: Yukang Lian [email protected] Co-authored-by: Gavin Chou [email protected] Co-authored-by: morningman [email protected]

Checklist(Required)

  • [ ] Does it affect the original behavior
  • [ ] Has unit tests been added
  • [ ] Has document been added or modified
  • [ ] Does it need to update dependencies
  • [ ] Is this PR support rollback (If NO, please explain WHY)

Further comments

If this is a relatively large or complex change, kick off the discussion at [email protected] by explaining why you chose the solution you did and what alternatives you considered, etc...

Yukang-Lian avatar Feb 26 '23 05:02 Yukang-Lian

run buildall

Yukang-Lian avatar Feb 26 '23 05:02 Yukang-Lian

LGTM

gavinchou avatar Feb 26 '23 15:02 gavinchou

PR approved by anyone and no changes requested.

github-actions[bot] avatar Feb 26 '23 15:02 github-actions[bot]

PR approved by at least one committer and no changes requested.

github-actions[bot] avatar Feb 27 '23 04:02 github-actions[bot]

run buildall

Yukang-Lian avatar Feb 27 '23 16:02 Yukang-Lian

run buildall

Yukang-Lian avatar Feb 27 '23 17:02 Yukang-Lian

run p0

Yukang-Lian avatar Feb 27 '23 17:02 Yukang-Lian

run buildall

Yukang-Lian avatar Feb 28 '23 15:02 Yukang-Lian

run p0

Yukang-Lian avatar Mar 01 '23 00:03 Yukang-Lian

run buildall

Yukang-Lian avatar Mar 01 '23 01:03 Yukang-Lian

run buildall

Yukang-Lian avatar Mar 01 '23 12:03 Yukang-Lian

run p0

Yukang-Lian avatar Mar 01 '23 13:03 Yukang-Lian

run p0

Yukang-Lian avatar Mar 01 '23 13:03 Yukang-Lian

run buildall

Yukang-Lian avatar Mar 01 '23 14:03 Yukang-Lian

run p0

Yukang-Lian avatar Mar 01 '23 17:03 Yukang-Lian

run p0

Yukang-Lian avatar Mar 01 '23 17:03 Yukang-Lian

run buildall

Yukang-Lian avatar Mar 01 '23 17:03 Yukang-Lian

run p0

Yukang-Lian avatar Mar 01 '23 17:03 Yukang-Lian

run o0

Yukang-Lian avatar Mar 01 '23 18:03 Yukang-Lian

run p0

Yukang-Lian avatar Mar 01 '23 18:03 Yukang-Lian

run buildall

Yukang-Lian avatar Mar 02 '23 12:03 Yukang-Lian

run buildall

Yukang-Lian avatar Mar 02 '23 13:03 Yukang-Lian

run p0

Yukang-Lian avatar Mar 02 '23 14:03 Yukang-Lian

run buildall

Yukang-Lian avatar Mar 02 '23 15:03 Yukang-Lian

run p0

Yukang-Lian avatar Mar 02 '23 16:03 Yukang-Lian

run p0

Yukang-Lian avatar Mar 02 '23 16:03 Yukang-Lian

run buildall

Yukang-Lian avatar Mar 02 '23 17:03 Yukang-Lian

run p0

Yukang-Lian avatar Mar 02 '23 17:03 Yukang-Lian

PR approved by at least one committer and no changes requested.

github-actions[bot] avatar Mar 03 '23 16:03 github-actions[bot]