Skip to content

Commit e50eb52

Browse files
authored
Merge pull request #9825 from Icinga/Al2Klimov-patch-8
Doc: Distributed Monitoring: add section "External CA/PKI"
2 parents 8f51f54 + 5011752 commit e50eb52

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

doc/06-distributed-monitoring.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3227,6 +3227,53 @@ information/pki: Writing certificate to file 'icinga2-satellite1.localdomain.crt
32273227

32283228
Copy and move these certificates to the respective instances e.g. with SSH/SCP.
32293229

3230+
#### External CA/PKI
3231+
3232+
Icinga works best with its own certificates.
3233+
The commands described above take care of the optimal certificate properties.
3234+
Also, Icinga renews them periodically at runtime to avoid expiry.
3235+
But you can also provide your own certificates,
3236+
just like to any other application which uses TLS.
3237+
3238+
!!! warning
3239+
3240+
The only serious reasons to generate own certificates are company policies.
3241+
You are responsible for making Icinga working with your certificates,
3242+
as well as for [expiry monitoring](10-icinga-template-library.md#plugin-check-command-ssl_cert)
3243+
and renewal.
3244+
3245+
Especially `icinga2 pki` CLI commands do not expect such certificates.
3246+
3247+
Also, do not provide your custom CA private key to Icinga 2!
3248+
Otherwise, it will automatically renew leaf certificates
3249+
with our hardcoded properties, not your custom ones.
3250+
3251+
The CA certificate must be located in `/var/lib/icinga2/certs/ca.crt`.
3252+
The basic requirements for all leaf certificates are:
3253+
3254+
* Located in `/var/lib/icinga2/certs/NODENAME.crt`
3255+
and `/var/lib/icinga2/certs/NODENAME.key`
3256+
* Subject with CN matching the endpoint name
3257+
* A DNS SAN matching the endpoint name
3258+
3259+
Pretty much everything else is limited only by your company policy
3260+
and the OpenSSL versions your Icinga nodes use. E.g. the following works:
3261+
3262+
* Custom key sizes, e.g. 2048 bits
3263+
* Custom key types, e.g. ECC
3264+
* Any number of intermediate CAs (but see limitations below)
3265+
* Multiple trusted root CAs in `/var/lib/icinga2/certs/ca.crt`
3266+
* Different root CAs per cluster subtree, as long as each node trusts the
3267+
certificate issuers of all nodes it's directly connected to
3268+
3269+
Intermediate CA restrictions:
3270+
3271+
* Each side has to provide its intermediate CAs along with the leaf certificate
3272+
in `/var/lib/icinga2/certs/NODENAME.crt`, ordered from leaf to root.
3273+
* Intermediate CAs may not be used directly as root CAs. To trust only specific
3274+
intermediate CAs, cross-sign them with themselves, so that you get equal
3275+
certificates except that they're self-signed. Use them as root CAs in Icinga.
3276+
32303277
## Automation <a id="distributed-monitoring-automation"></a>
32313278

32323279
These hints should get you started with your own automation tools (Puppet, Ansible, Chef, Salt, etc.)

0 commit comments

Comments
 (0)