Áú»¢¶Ä²© kan RSA-certificaten in PEM-indeling gebruiken, ondertekend door een openbare of in-house certificaatautoriteit (CA). Certificaatverificatie wordt uitgevoerd tegen een vooraf geconfigureerd CA-certificaat. Optioneel kunnen certificaat intrekkingslijsten (CRL) worden gebruikt. Elk Áú»¢¶Ä²©-component kan slechts ¨¦¨¦n certificaat geconfigureerd hebben.
Voor meer informatie over het instellen en gebruiken van een interne CA, het genereren van certificaataanvragen en het ondertekenen ervan, en hoe u certificaten kunt intrekken, kunt u talrijke online how-to's vinden, bijvoorbeeld .
Overweeg en test zorgvuldig uw certificaatextensies - zie Beperkingen bij het gebruik van X.509 v3-certificaatextensies.
Parameter | Verplicht | Beschrijving |
---|---|---|
TLSCAFile | ja | Volledig pad naar een bestand dat de certificaten van de hoogste niveau CA's bevat voor verificatie van peer-certificaten. In het geval van een certificaatketen met meerdere leden moeten ze geordend zijn: certificaten van lagere niveau CA's eerst, gevolgd door certificaten van hogere niveau CA's. Certificaten van meerdere CA's kunnen in ¨¦¨¦n bestand worden opgenomen. |
TLSCRLFile | nee | Volledig pad naar een bestand dat Certificate Revocation Lists bevat. Zie opmerkingen in Certificate Revocation Lists (CRL). |
TLSCertFile | ja | Volledig pad naar een bestand dat het certificaat bevat (certificaatketen). In het geval van een certificaatketen met meerdere leden moeten ze geordend zijn: server, proxy of agent certificaat eerst, gevolgd door certificaten van lagere niveau CA's en vervolgens certificaten van hogere niveau CA's. |
TLSKeyFile | ja | Volledig pad naar een bestand dat de priv¨¦sleutel bevat. Stel de toegangsrechten voor dit bestand in - het moet alleen leesbaar zijn door de Áú»¢¶Ä²©-gebruiker. |
TLSServerCertIssuer | nee | Toegestane uitgever van servercertificaten. |
TLSServerCertSubject | nee | Toegestaan onderwerp van servercertificaten. |
After setting up the necessary certificates, configure Áú»¢¶Ä²© components to use certificate-based encryption.
Below are detailed steps for configuring:
Om peer-certificaten te verifi?ren, moet de Áú»¢¶Ä²©-server toegang hebben tot een bestand met hun hoogste zelfondertekende root CA-certificaten. Als we bijvoorbeeld certificaten verwachten van twee onafhankelijke root CA's, kunnen we hun certificaten in een bestand zoals /home/zabbix/zabbix_ca_file
plaatsen, zoals dit:
Certificaat: Gegevens: Versie: 3 (0x2) Serienummer: 1 (0x1) Handtekening Algoritme: sha1WithRSAEncryption Uitgever: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Development group, CN=Root1 CA ... Onderwerp: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Development group, CN=Root1 CA Openbare sleutel informatie van het onderwerp: Openbare-sleutelalgoritme: rsaEncryption Openbare sleutel: (2048 bit) ... X509v3-extensies: X509v3-sleutelgebruik: kritiek Certificaat ondertekenen, CRL ondertekenen X509v3-basisbeperkingen: kritiek CA: WAAR ... -----BEGIN CERTIFICATE----- MIID2jCCAsKgAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MRMwEQYKCZImiZPyLGQB .... 9wEzdN8uTrqoyU78gi12npLj08LegRKjb5hFTVmO -----END CERTIFICATE----- Certificaat: Gegevens: Versie: 3 (0x2) Serienummer: 1 (0x1) Handtekening Algoritme: sha1WithRSAEncryption Uitgever: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Development group, CN=Root2 CA ... Onderwerp: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Development group, CN=Root2 CA Openbare sleutel informatie van het onderwerp: Openbare-sleutelalgoritme: rsaEncryption Openbare sleutel: (2048 bit) .... X509v3-extensies: X509v3-sleutelgebruik: kritiek Certificaat ondertekenen, CRL ondertekenen X509v3-basisbeperkingen: kritiek CA: WAAR ....
-----BEGIN CERTIFICATE----- MIID3DCCAsSgAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MRMwEQYKCZImiZPyLGQB ... vdGNYoSfvu41GQAR5Vj5FnRJRzv5XQOZ3B6894GY1zY= -----END CERTIFICATE-----
Plaats de certificaatketen van de Áú»¢¶Ä²©-server in een bestand, bijvoorbeeld /home/zabbix/zabbix_server.crt
:
Certificaat: Gegevens: Versie: 3 (0x2) Serienummer: 1 (0x1) Handtekening Algoritme: sha1WithRSAEncryption Uitgever: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Development group, CN=Signing CA ... Onderwerp: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Development group, CN=Áú»¢¶Ä²© server Openbare sleutel informatie van het onderwerp: Openbare-sleutelalgoritme: rsaEncryption Openbare sleutel: (2048 bit) ... X509v3-extensies: X509v3-sleutelgebruik: kritiek Digitale handtekening, sleutelversleuteling X509v3-basisbeperkingen: CA: ONWAAR ... -----BEGIN CERTIFICATE----- MIIECDCCAvCgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgTETMBEGCgmSJomT8ixk ... h02u1GHiy46GI+xfR3LsPwFKlkTaaLaL/6aaoQ== -----END CERTIFICATE----- Certificaat: Gegevens: Versie: 3 (0x2) Serienummer: 2 (0x2) Handtekening Algoritme: sha1WithRSAEncryption Uitgever: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Development group, CN=Root1 CA ... Onderwerp: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Development group, CN=Signing CA Openbare sleutel informatie van het onderwerp: Openbare-sleutelalgoritme: rsaEncryption Openbare sleutel: (2048 bit) ... X509v3-extensies: X509v3-sleutelgebruik: kritiek Certificaat ondertekenen, CRL ondertekenen X509v3-basisbeperkingen: kritiek CA: WAAR, pathlen: 0 ... -----BEGIN CERTIFICATE----- MIID4TCCAsmgAwIBAgIBAjANBgkqhkiG9w0BAQUFADB+MRMwEQYKCZImiZPyLGQB ... dyCeWnvL7u5sd6ffo8iRny0QzbHKmQt/wUtcVIvWXdMIFJM0Hw== -----END CERTIFICATE-----
Hier is het eerste certificaat van de Áú»¢¶Ä²©-server, gevolgd door het tussenliggende CA-certificaat.
Het gebruik van andere attributen dan de hierboven genoemde wordt afgeraden voor zowel client- als servercertificaten, omdat dit het certificeringsverificatieproces kan be?nvloeden. OpenSSL kan bijvoorbeeld falen om een versleutelde verbinding tot stand te brengen als X509v3 Extended Key Usage of Netscape Cert Type zijn ingesteld. Zie ook: Beperkingen bij het gebruik van X.509 v3-certificaatextensies.
Plaats de priv¨¦sleutel van de Áú»¢¶Ä²©-server in een bestand, bijvoorbeeld /home/zabbix/zabbix_server.key
:
-----BEGIN PRIVATE KEY----- MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQC9tIXIJoVnNXDl ... IJLkhbybBYEf47MLhffWa7XvZTY= -----END PRIVATE KEY-----
Bewerk TLS-parameters in het configuratiebestand van de Áú»¢¶Ä²©-server als volgt:
TLSCAFile=/home/zabbix/zabbix_ca_file TLSCertFile=/home/zabbix/zabbix_server.crt TLSKeyFile=/home/zabbix/zabbix_server.key
1. Bereid bestanden voor met top-level CA-certificaten, proxycertificaat (keten) en priv¨¦sleutel zoals beschreven in Configuring certificate on Áú»¢¶Ä²© server. Bewerk de parameters TLSCAFile
, TLSCertFile
en TLSKeyFile
in de proxyconfiguratie dienovereenkomstig.
2. Voor een actieve proxy bewerkt u de parameter TLSConnect
:
Voor een passieve proxy bewerkt u de parameter TLSAccept
:
3. Nu heeft u een minimale op certificaten gebaseerde proxyconfiguratie. U kunt de beveiliging van de proxy verbeteren door de parameters TLSServerCertIssuer
en TLSServerCertSubject
in te stellen (zie Restricting allowed certificate Issuer and Subject).
4. In het uiteindelijke proxyconfiguratiebestand kunnen de TLS-parameters er als volgt uitzien:
TLSConnect=cert
TLSAccept=cert
TLSCAFile=/home/zabbix/zabbix_ca_file
TLSServerCertIssuer=CN=Signing CA,OU=Development group,O=Áú»¢¶Ä²© SIA,DC=zabbix,DC=com
TLSServerCertSubject=CN=Áú»¢¶Ä²© server,OU=Development group,O=Áú»¢¶Ä²© SIA,DC=zabbix,DC=com
TLSCertFile=/home/zabbix/zabbix_proxy.crt
TLSKeyFile=/home/zabbix/zabbix_proxy.key
5. Configureer versleuteling voor deze proxy in de Áú»¢¶Ä²© frontend:
In de onderstaande voorbeelden worden de Issuer- en Subject-velden ingevuld - zie Restricting allowed certificate Issuer and Subject waarom en hoe u deze velden moet gebruiken.
Voor een actieve proxy
Voor een passieve proxy
1. Bereid bestanden voor met top-level CA-certificaten, agentcertificaat (keten) en priv¨¦sleutel zoals beschreven in Configuring certificate on Áú»¢¶Ä²© server. Bewerk de parameters TLSCAFile
, TLSCertFile
en TLSKeyFile
in de agentconfiguratie dienovereenkomstig.
2. Voor actieve controles bewerkt u de parameter TLSConnect
:
Voor passieve controles bewerkt u de parameter TLSAccept
:
3. Nu heeft u een minimale op certificaten gebaseerde agentconfiguratie. U kunt de beveiliging van de agent verbeteren door de parameters TLSServerCertIssuer
en TLSServerCertSubject
in te stellen (zie Restricting allowed certificate Issuer and Subject).
4. In het uiteindelijke agentconfiguratiebestand kunnen de TLS-parameters er als volgt uitzien:
TLSConnect=cert
TLSAccept=cert
TLSCAFile=/home/zabbix/zabbix_ca_file
TLSServerCertIssuer=CN=Signing CA,OU=Development group,O=Áú»¢¶Ä²© SIA,DC=zabbix,DC=com
TLSServerCertSubject=CN=Áú»¢¶Ä²© proxy,OU=Development group,O=Áú»¢¶Ä²© SIA,DC=zabbix,DC=com
TLSCertFile=/home/zabbix/zabbix_agentd.crt
TLSKeyFile=/home/zabbix/zabbix_agentd.key
(Het voorbeeld gaat ervan uit dat de host wordt bewaakt via een proxy, vandaar het onderwerp van het proxycertificaat.)
5. Configureer versleuteling voor deze agent in de Áú»¢¶Ä²© frontend:
In het onderstaande voorbeeld zijn de Issuer- en Subject-velden ingevuld - zie Restricting allowed certificate Issuer and Subject waarom en hoe u deze velden moet gebruiken.
1. Prepare files with the top-level CA certificates, the Áú»¢¶Ä²© web service certificate/certificate chain, and the private key as described in the Áú»¢¶Ä²© server section. Then, edit the TLSCAFile
, TLSCertFile
, and TLSKeyFile
parameters in the Áú»¢¶Ä²© web service configuration file accordingly.
2. Edit an additional TLS parameter in the Áú»¢¶Ä²© web service configuration file: TLSAccept=cert
TLS parameters in the final web service configuration file may look as follows:
TLSAccept=cert
TLSCAFile=/home/zabbix/zabbix_ca_file
TLSCertFile=/home/zabbix/zabbix_web_service.crt
TLSKeyFile=/home/zabbix/zabbix_web_service.key
3. Configure Áú»¢¶Ä²© server to connect to the TLS-configured Áú»¢¶Ä²© web service by editing the WebServiceURL
parameter in the Áú»¢¶Ä²© server configuration file:
Wanneer twee Áú»¢¶Ä²©-componenten (bijvoorbeeld server en agent) een TLS-verbinding tot stand brengen, controleren ze elkaars certificaten. Als een peer-certificaat is ondertekend door een vertrouwde CA (met vooraf geconfigureerd top-level certificaat in TLSCAFile
), geldig is, niet is verlopen en enkele andere controles doorstaat, kan de communicatie doorgaan. De certificaatuitgever en het onderwerp worden in dit eenvoudigste geval niet gecontroleerd.
Hier is een risico - iedereen met een geldig certificaat kan zich voordoen als iemand anders (bijvoorbeeld een hostcertificaat kan worden gebruikt om zich voor te doen als server). Dit kan acceptabel zijn in kleine omgevingen waar certificaten worden ondertekend door een speciale interne CA en het risico op zich voordoen laag is.
Als je top-level CA wordt gebruikt voor het uitgeven van andere certificaten die niet door Áú»¢¶Ä²© moeten worden geaccepteerd of als je het risico van zich voordoen wilt verminderen, dan kun je toegestane certificaten beperken door hun uitgever en onderwerpsreeksen te specificeren.
Bijvoorbeeld, je kunt het volgende toevoegen aan de Áú»¢¶Ä²© proxy configuratiebestand:
TLSServerCertIssuer=CN=Signing CA,OU=Development group,O=Áú»¢¶Ä²© SIA,DC=zabbix,DC=com
TLSServerCertSubject=CN=Áú»¢¶Ä²© server,OU=Development group,O=Áú»¢¶Ä²© SIA,DC=zabbix,DC=com
Met deze instellingen zal een actieve proxy niet communiceren met een Áú»¢¶Ä²©-server waarvan het uitgever- of onderwerpsreeks verschilt van het certificaat. Een passieve proxy zal geen verzoeken van een dergelijke server accepteren.
Enkele opmerkingen over het overeenkomen van uitgever- of onderwerpsreeksen:
De volgorde van velden in uitgever- en onderwerpsreeksen en opmaak zijn belangrijk! Áú»¢¶Ä²© volgt de aanbeveling van en gebruikt de "omgekeerde" volgorde van velden.
De omgekeerde volgorde kan worden ge?llustreerd met een voorbeeld:
TLSServerCertIssuer=CN=Signing CA,OU=Development group,O=Áú»¢¶Ä²© SIA,DC=zabbix,DC=com
TLSServerCertSubject=CN=Áú»¢¶Ä²© proxy,OU=Development group,O=Áú»¢¶Ä²© SIA,DC=zabbix,DC=com
Merk op dat het begint met een laag niveau (CN), doorgaat naar een middenniveau (OU, O) en eindigt met top-level (DC) velden.
OpenSSL toont standaard certificaatuitgever- en onderwerpsvelden in "normale" volgorde, afhankelijk van de gebruikte aanvullende opties:
$ openssl x509 -noout -in /home/zabbix/zabbix_proxy.crt -issuer -subject
issuer= /DC=com/DC=zabbix/O=Áú»¢¶Ä²© SIA/OU=Development group/CN=Signing CA
subject= /DC=com/DC=zabbix/O=Áú»¢¶Ä²© SIA/OU=Development group/CN=Áú»¢¶Ä²© proxy
$ openssl x509 -noout -text -in /home/zabbix/zabbix_proxy.crt
Certificate:
...
Issuer: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Development group, CN=Signing CA
...
Subject: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Development group, CN=Áú»¢¶Ä²© proxy
Hier beginnen de uitgever- en onderwerpsreeksen met top-level (DC) en eindigen ze met laag niveau (CN) veld, spaties en veldscheiders zijn afhankelijk van de gebruikte opties. Geen van deze waarden zal overeenkomen in de Issuer- en Subject-velden van Áú»¢¶Ä²©!
Om de juiste Issuer- en Subject-reeksen te krijgen die bruikbaar zijn in Áú»¢¶Ä²©, gebruik je OpenSSL met speciale opties (-nameopt esc_2253,esc_ctrl,utf8,dump_nostr,dump_unknown,dump_der,sep_comma_plus,dn_rev,sname
):
$ openssl x509 -noout -issuer -subject \
-nameopt esc_2253,esc_ctrl,utf8,dump_nostr,dump_unknown,dump_der,sep_comma_plus,dn_rev,sname \
-in /home/zabbix/zabbix_proxy.crt
issuer= CN=Signing CA,OU=Development group,O=Áú»¢¶Ä²© SIA,DC=zabbix,DC=com
subject= CN=Áú»¢¶Ä²© proxy,OU=Development group,O=Áú»¢¶Ä²© SIA,DC=zabbix,DC=com
Nu zijn de reeks van tekenreeksen in omgekeerde volgorde, zijn de velden gescheiden door komma's en kunnen ze worden gebruikt in Áú»¢¶Ä²© configuratiebestanden en de frontend.
Issuer
and Subject
stringsThe rules for matching Issuer
and Subject
strings are as follows:
Issuer
and Subject
strings are checked independently. Both are optional.*
) or regular expressions are not supported.\
' backslash, U+005C):
"
' (U+0022), '+
' (U+002B), ',
' (U+002C), ';
' (U+003B), '<
' (U+003C), '>
' (U+003E), '\\
' (U+005C);#
', U+0023);For example, if Issuer
and Subject
organization (O
) strings contain trailing spaces and the Subject
organizational unit (OU
) string contains double quotes, these characters must be escaped:
TLSServerCertIssuer=CN=Signing CA,OU=Development head,O=\ Example SIA\ ,DC=example,DC=com
TLSServerCertSubject=CN=Áú»¢¶Ä²© server,OU=Development group \"5\",O=\ Example SIA\ ,DC=example,DC=com
Áú»¢¶Ä²© follows the recommendations of , which specifies a "reverse" order for these fields, starting with the lowest-level fields (CN
), proceeding to the mid-level fields (OU
, O
), and concluding with the highest-level fields (DC
).
TLSServerCertIssuer=CN=Signing CA,OU=Development group,O=Áú»¢¶Ä²© SIA,DC=zabbix,DC=com
TLSServerCertSubject=CN=Áú»¢¶Ä²© proxy,OU=Development group,O=Áú»¢¶Ä²© SIA,DC=zabbix,DC=com
In contrast, OpenSSL by default displays the Issuer
and Subject
strings in top-level to low-level order. In the following example, Issuer
and Subject
fields start with the top-level (DC
) and end with the low-level (CN
) field. The formatting with spaces and field separators also varies based on the options used, and thus will not match the format required by Áú»¢¶Ä²©.
$ openssl x509 -noout -in /home/zabbix/zabbix_proxy.crt -issuer -subject
issuer= /DC=com/DC=zabbix/O=Áú»¢¶Ä²© SIA/OU=Development group/CN=Signing CA
subject= /DC=com/DC=zabbix/O=Áú»¢¶Ä²© SIA/OU=Development group/CN=Áú»¢¶Ä²© proxy
$ openssl x509 -noout -text -in /home/zabbix/zabbix_proxy.crt
Certificate:
...
Issuer: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Development group, CN=Signing CA
...
Subject: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Development group, CN=Áú»¢¶Ä²© proxy
To format Issuer and Subject strings correctly for Áú»¢¶Ä²©, invoke OpenSSL with the following options:
$ openssl x509 -noout -issuer -subject \
-nameopt esc_2253,esc_ctrl,utf8,dump_nostr,dump_unknown,dump_der,sep_comma_plus,dn_rev,sname\
-in /home/zabbix/zabbix_proxy.crt
The output will then be in reverse order, comma-separated, and usable in Áú»¢¶Ä²© configuration files and frontend:
issuer= CN=Signing CA,OU=Development group,O=Áú»¢¶Ä²© SIA,DC=zabbix,DC=com
subject= CN=Áú»¢¶Ä²© proxy,OU=Development group,O=Áú»¢¶Ä²© SIA,DC=zabbix,DC=com
Als een certificaat gecompromitteerd is, kan de CA het intrekken door het op te nemen in de CRL. CRL's kunnen worden geconfigureerd in de configuratiebestanden van de server, proxy en agent met behulp van de parameter TLSCRLFile
. Bijvoorbeeld:
waarbij zabbix_crl_file
CRL's van meerdere CA's kan bevatten en er als volgt uit kan zien:
-----BEGIN X509 CRL-----
MIIB/DCB5QIBATANBgkqhkiG9w0BAQUFADCBgTETMBEGCgmSJomT8ixkARkWA2Nv
...
treZeUPjb7LSmZ3K2hpbZN7SoOZcAoHQ3GWd9npuctg=
-----END X509 CRL-----
-----BEGIN X509 CRL-----
MIIB+TCB4gIBATANBgkqhkiG9w0BAQUFADB/MRMwEQYKCZImiZPyLGQBGRYDY29t
...
CAEebS2CND3ShBedZ8YSil59O6JvaDP61lR5lNs=
-----END X509 CRL-----
Het CRL-bestand wordt alleen geladen bij het starten van Áú»¢¶Ä²©. Het bijwerken van CRL's vereist een herstart.
Als een Áú»¢¶Ä²©-component is gecompileerd met OpenSSL en CRL's worden gebruikt, moet elke top- en tussenliggende CA in de certificaatketens een overeenkomstige CRL hebben (deze kan leeg zijn) in het TLSCRLFile
.