Skip to content

Add SAN docs #552

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

Merged
merged 1 commit into from
Jan 8, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion docs/examples/tls/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,27 @@ Assuming you already have these created and accessible as `server.pem` and `serv
kubectl create secret tls tls-secret --cert=server.pem --key=server-key.pem
```

This secret can also be created by [Cert Manager](https://cert-manager.io/).
Alternatively, this secret can also be created by [Cert Manager](https://cert-manager.io/).

Once the secret exists, you can deploy this example as follows:

```shell
kubectl apply -f rabbitmq.yaml
```

## SAN attributes for certificates

Make sure that the certificate's Subject Alternative Name (SAN) contains at least the following attributes:
* `*.<RabbitMQ cluster name>-nodes.<namespace>.svc.<K8s cluster domain name>`
* `<RabbitMQ cluster name>.<namespace>.svc.<K8s cluster domain name>`

If wildcards are not permitted, you must provide a SAN attribute for each RabbitMQ node in your RabbitMQ cluster.
For example, if you deploy a 3-node RabbitMQ cluster named `myrabbit` in namespace `mynamespace` with the default Kubernetes cluster domain `cluster.local`, the SAN must include at least the following attributes:
* `myrabbit-server-0.myrabbit-nodes.mynamespace.svc.cluster.local`
* `myrabbit-server-1.myrabbit-nodes.mynamespace.svc.cluster.local`
* `myrabbit-server-2.myrabbit-nodes.mynamespace.svc.cluster.local`
* `myrabbit.mynamespace.svc.cluster.local`

Note that the last SAN attribute is the client service DNS name.
Depending on the service type you use (`spec.service.type`), you might need further SAN attributes.
For example if you use service type `NodePort`, you need to include the external IP address of each K8s node to the SAN.