Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feat]: Milvus cannot connect to kafka&minio with ssl #27461

Open
1 task done
chenraoCR opened this issue Oct 2, 2023 · 19 comments
Open
1 task done

[Feat]: Milvus cannot connect to kafka&minio with ssl #27461

chenraoCR opened this issue Oct 2, 2023 · 19 comments
Assignees
Labels
help wanted Extra attention is needed kind/feature Issues related to feature request from users

Comments

@chenraoCR
Copy link
Contributor

Is there an existing issue for this?

  • I have searched the existing issues

Environment

- Milvus version: latest
- Deployment mode(standalone or cluster): standalone
- MQ type(rocksmq, pulsar or kafka): kafka with ssl
- Metadata storage: etcd with ssl
- S3: minio with ssl

Current Behavior

milvus cannot connect external services kafka & minio which configued with ssl

Expected Behavior

milvus could connect kafka & minio with ssl

Steps To Reproduce

1. Startup external services etcd, minio and kafka with ssl 
2. Configure milvus

.yaml
etcd:
  endpoints: [external-etcd-address]
  ......
  ssl:
    enabled: false # Whether to support ETCD secure connection mode
    tlsCert: /path/to/etcd-client.pem # path to your cert file
    tlsKey: /path/to/etcd-client-key.pem # path to your key file
    tlsCACert: /path/to/ca.pem # path to your CACert file
    # TLS min version
    # Optional values: 1.0, 1.1, 1.2, 1.3。
    # We recommend using version 1.2 and above
    tlsMinVersion: 1.3
  ......
......
minio:
  address: external-minio-address
  ......
  useSSL: true
  ......
......
kafka:
  brokerList: [external-kafka-brokers-address]
  ......
  securityProtocol: SSL
  ......
......
3. startup milvus, cannot connect to kafka & minio, ssl handshake will fail

Milvus Log

No response

Anything else?

should handle kafka & minio ssl just like etcd

@chenraoCR chenraoCR added kind/bug Issues or changes related a bug needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Oct 2, 2023
@chenraoCR
Copy link
Contributor Author

donot know why in milvus.yaml, unlike ectd, can enable kafka & minio ssl, but cannot configure kafka&minio ssl certs

@xiaofan-luan
Copy link
Collaborator

for kafka you have to use 2.3.1.
I believe S3 can support ssl, did ever try to config?

@chenraoCR
Copy link
Contributor Author

@xiaofan-luan yes, but in the milvus.yaml, can only config minio.useSSL to true, but how to config the certs path? when just set minio.useSSL to true, cannot connect minio, SSL handshake error

@xiaofan-luan
Copy link
Collaborator

@xiaofan-luan yes, but in the milvus.yaml, can only config minio.useSSL to true, but how to config the certs path? when just set minio.useSSL to true, cannot connect minio, SSL handshake error

If you already enable minio tls, you should have the cert file already right?

@xiaofan-luan
Copy link
Collaborator

https://min.io/docs/minio/linux/operations/network-encryption.html
this document might help you?

@chenraoCR chenraoCR reopened this Oct 4, 2023
@chenraoCR
Copy link
Contributor Author

@xiaofan-luan yes, but in the milvus.yaml, can only config minio.useSSL to true, but how to config the certs path? when just set minio.useSSL to true, cannot connect minio, SSL handshake error

If you already enable minio tls, you should have the cert file already right?

sure, for minio tls, i tested with other app to connect to minio with tls, can
besides, i want to say that when minio enabled with tls with minio server certs, how does milvus connect to minio without client certs

@yanliang567
Copy link
Contributor

/assign @LoveEachDay
/unassign

@yanliang567 yanliang567 added help wanted Extra attention is needed and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Oct 4, 2023
@LoveEachDay
Copy link
Contributor

For minio and kafka, we only support tls signed by public ca. We don't have a config options to pass self-signed tls certs.

@yanliang567 yanliang567 assigned chenraoCR and unassigned LoveEachDay Oct 9, 2023
@yanliang567 yanliang567 added kind/feature Issues related to feature request from users and removed kind/bug Issues or changes related a bug labels Oct 9, 2023
@yanliang567
Copy link
Contributor

sounds like a new feature for milvus, @xiaofan-luan any plan for it?

/assign @chenraoCR
/unassign @LoveEachDay

@chenraoCR
Copy link
Contributor Author

@LoveEachDay ah, got it and thanks, but hope it could have a config options to pass self-signed tls certs, as milvus already has the option to use TLS to connect minio&kafka while minio&kafka are possible to be configured with self-signed tls certs

@xiaofan-luan
Copy link
Collaborator

For minio and kafka, we only support tls signed by public ca. We don't have a config options to pass self-signed tls certs.

I think this is nice to have.
Anyone want to contribute on it?

@chenraoCR
Copy link
Contributor Author

@xiaofan-luan so this feature that supports kafka&minio self certs will be added or not in the future and when will be released, thanks

@xiaofan-luan
Copy link
Collaborator

feel free to contribute on it but yes this is not our priority.

I think for kafka and minio we already support ssl but manage certs it too much for most users.

@xiaofan-luan
Copy link
Collaborator

we are open to any contribution on this and it shouldn't be that hard to implement

@chenraoCR
Copy link
Contributor Author

okay, will try

@chenraoCR chenraoCR changed the title [Bug]: Milvus cannot connect to kafka&minio with ssl [Feat]: Milvus cannot connect to kafka&minio with ssl Jan 2, 2024
@LinLeng
Copy link

LinLeng commented Jan 12, 2024

public ca.

Can we disable cert check, like --insecure flag in mc client? thanks.

@chenraoCR
Copy link
Contributor Author

chenraoCR commented Jan 12, 2024

in fact, i already added kafka tls settings, and can well work, but for minio, a little complex, and tried a long time, but failed, the only way i found is to set config.verifySSL = false in MinioChunkManager.cpp even when minio.useSsl is true
image

@LinLeng
Copy link

LinLeng commented Jan 15, 2024

feel free to contribute on it but yes this is not our priority.

I think for kafka and minio we already support ssl but manage certs it too much for most users.

Our minio requires company CA cert to connect, is it possible to add/replace exisitng cert in milvus image so we can get this to work? thanks.

chenraoCR added a commit to chenraoCR/milvus that referenced this issue Jan 17, 2024
chenraoCR added a commit to chenraoCR/milvus that referenced this issue Jan 17, 2024
@chenraoCR
Copy link
Contributor Author

feel free to contribute on it but yes this is not our priority.
I think for kafka and minio we already support ssl but manage certs it too much for most users.

Our minio requires company CA cert to connect, is it possible to add/replace exisitng cert in milvus image so we can get this to work? thanks.

no, tried, but cannot work

chenraoCR added a commit to chenraoCR/milvus that referenced this issue Mar 6, 2024
chenraoCR added a commit to chenraoCR/milvus that referenced this issue Mar 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed kind/feature Issues related to feature request from users
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants