Skip to content

Conversation

feorlen
Copy link
Collaborator

@feorlen feorlen commented Oct 13, 2023

Update and clarify how to configure TLS for a distributed deployment. The existing steps were out of date, and also were not clear configuration needs to happen on each node.

I'd particularly appreciate comments on terminology. I'm a little fuzzy about how to work with CAs, perhaps some of the phrasing can be improved.

Staged:

Closes #447

.. code-block:: shell

${HOME}/.minio/CAs
myCA.pem
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What should this filename be? I'm not certain it's actually a pem.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also depends - if it's self-signed, it's going to be a .crt.

We might need to confirm w/ engineering what we expect the keys to be. .pem is a valid wrapper, but I'm not sure if we require .crt

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Poking at the code, I think we expect .crt. Will confirm.

@feorlen
Copy link
Collaborator Author

feorlen commented Oct 13, 2023

TODO: summarize the configuration steps near the top of the Network Encryption page (once the technical detail within is confirmed correct).

@feorlen feorlen requested review from ravindk89 and djwfyi October 13, 2023 21:18
Copy link
Collaborator

@ravindk89 ravindk89 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few followup/s with engineering, after which I'll do another pass for content.

.. code-block:: shell

${HOME}/.minio/CAs
myCA.pem
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also depends - if it's self-signed, it's going to be a .crt.

We might need to confirm w/ engineering what we expect the keys to be. .pem is a valid wrapper, but I'm not sure if we require .crt

Copy link
Member

@pjuarezd pjuarezd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pjuarezd
Copy link
Member

pjuarezd commented Oct 18, 2023

Is possible to include a section about additional CA's? this is an frequent issue with clients, we usually we share this doc in the repo https://github.com/minio/operator/blob/master/docs/tls.md#using-your-own-ca-certificate-for-minio-operator.

operator-ca-tls

If your MinIO tenants are using custom certificates or certificates generated by your own internal certificate authority (ie: cert-manager). MinIO Operator needs to trust the TLS connections in order to talk to the MinIO tenants, for that you need to create a new secret in the minio-operator namespace named operator-ca-tls, inside this secret create a new key ca.crt that will include the public certificate for your internal certificate authority.

Once the secret is created, operator will create a copy of this secret with the same name in the tenant namespaces.

Whenever a change to the secret operator-ca-tls in the operator namespace is made, the Operator will replicate the change to the secret copy in the tenants namespaces. Operator will replicate the changes to the keys in the secret public.crt, tls.crt and ca.crt.

However operator will not automatically mount the secret operator-ca-tls in the pods, the secret needs to be referenced in the tenant yaml in the externalCaCertSecret property, The pod will have the certificates mounted in the /tmp/certs/CAs/ directory

...
spec:
  externalCaCertSecret:
  - name: operator-ca-tls
    type: kubernetes.io/tls
...

@feorlen
Copy link
Collaborator Author

feorlen commented Oct 18, 2023

Is possible to include a section about additional CA's? this is an frequent issue with clients

Can totally add more. Is there anything you would include in addition to that text? @pjuarezd

Copy link
Collaborator

@djwfyi djwfyi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My only added suggestion is to provide some kind of link that can give folks a hint of how to "update MINIO_VOLUMES". Could just be linking to the envvar. But that line occurs many times in these changes, and some link to another resource is warranted.

Other than that, LGTM as far as I know/understand.

@feorlen
Copy link
Collaborator Author

feorlen commented Oct 18, 2023

Note: @pjuarezd approved in a separate conversation

@feorlen feorlen merged commit 0b6f3e0 into main Oct 18, 2023
@feorlen feorlen deleted the DOCS-447 branch October 18, 2023 16:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Specify TLS configuration is per-node
4 participants