You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Only supports single hostname (no multiple DNS names)
57
-
- Cannot provide custom certificate files during deployment
58
-
- Fixed 20-year certificate validity period
59
-
- Limited certificate customization options
56
+
foremanctl supports Subject Alternative Names (SANs) for multi-domain certificates:
60
57
61
-
---
58
+
```bash
59
+
# Generate certificates with multiple DNS names
60
+
foremanctl deploy \
61
+
--certificate-cname api.example.com \
62
+
--certificate-cname foreman.example.com \
63
+
--certificate-cname satellite.example.com
64
+
```
65
+
66
+
When CNAMEs are specified, certificates will include all names in the Subject Alternative Name field, allowing the same certificate to be valid for multiple hostnames.
62
67
63
68
## Internal Design
64
69
@@ -89,7 +94,8 @@ src/roles/certificates/
89
94
90
95
2.**Host Certificate Issuance** (for each hostname in `certificates_hostnames`):
91
96
- Generate 4096-bit RSA private key
92
-
- Create certificate signing request (CSR)
97
+
- Create certificate signing request (CSR) with Subject Alternative Names
98
+
- Include primary hostname and any additional CNAMEs from `certificate_cname`
93
99
- Sign certificate with CA (includes serverAuth/clientAuth extensions)
94
100
- Generate both server and client certificates per hostname
95
101
@@ -146,5 +152,6 @@ The `certificate_checks` role uses `foreman-certificate-check` binary to validat
146
152
147
153
**OpenSSL Configuration:**
148
154
- Custom configuration template supports SAN extensions
149
-
- Single DNS entry per certificate: `subjectAltName = DNS:{{ certificates_hostname }}`
150
-
- Uses OpenSSL's `req` and `ca` commands for generation and signing
155
+
- Multiple DNS entries supported: `subjectAltName = DNS:{{ certificates_hostname }}{% for cname in certificate_cname %},DNS:{{ cname }}{% endfor %}`
156
+
- Uses OpenSSL's `req` and `ca` commands for generation and signing
157
+
- CNAMEs configured via `certificate_cname` variable (list of additional DNS names)
0 commit comments