Áú»¢¶Ä²© peut utiliser des certificats RSA au format PEM, sign¨¦s par une autorit¨¦ de certification publique ou interne (CA). La v¨¦rification du certificat est effectu¨¦e sur une CA de certificat pr¨¦-configur¨¦e. Les listes de r¨¦vocation de certificats (CRL) peuvent ¨¦ventuellement ¨ºtre utilis¨¦es. Chaque composant Áú»¢¶Ä²© ne peut avoir qu'un seul certificat configur¨¦.
Pour plus d'informations sur la configuration et l'utilisation de l'autorit¨¦ de certification interne, la g¨¦n¨¦ration de demandes de certificats et leur signature, la r¨¦vocation de certificats, vous trouverez en ligne en grand nombre de modes d'emploi, par exemple, .
Examinez attentivement et testez vos extensions de certificat - voir Limitations sur les extensions de certificat X.509 v3.
±Ê²¹°ù²¹³¾¨¨³Ù°ù±ð | Obligatoire | Description |
---|---|---|
TLSCAFile | oui | Chemin d'acc¨¨s complet d'un fichier contenant les certificats de niveau sup¨¦rieur de l'autorit¨¦ de certification pour la v¨¦rification des certificats homologues. En cas de cha?ne de certificats avec plusieurs membres, ils doivent ¨ºtre ordonn¨¦s : certificats de CA de niveau inf¨¦rieur en premier, suivi par des certificats de niveau sup¨¦rieur. Les certificats de plusieurs CA peuvent ¨ºtre inclus dans un seul fichier. |
TLSCRLFile | non | Chemin d'acc¨¨s complet d'un fichier contenant des listes de r¨¦vocation de certificats. Voir Listes de r¨¦vocation de certificats (CRL). |
TLSCertFile | oui | Chemin d'acc¨¨s complet d'un fichier contenant un certificat (cha?ne de certificats). En cas de cha?ne de certificats avec plusieurs membres, ils doivent ¨ºtre ordonn¨¦s : certificat de serveur, de proxy ou d'agent en premier, suivi des certificats de niveau inf¨¦rieur puis des certificats de l'autorit¨¦ de certification de niveau sup¨¦rieur. |
TLSKeyFile | oui | Chemin d'acc¨¨s complet d'un fichier contenant une cl¨¦ priv¨¦e. D¨¦finissez les droits d¡¯acc¨¨s ¨¤ ce fichier - il ne doit ¨ºtre lisible que par l¡¯utilisateur de Áú»¢¶Ä²©. |
TLSServerCertIssuer | non | ?metteur de certificat de serveur autoris¨¦. |
TLSServerCertSubject | non | D¨¦tenteur du certificat de serveur autoris¨¦. |
After setting up the necessary certificates, configure Áú»¢¶Ä²© components to use certificate-based encryption.
Below are detailed steps for configuring:
1. Afin de v¨¦rifier les certificats homologues, le serveur Áú»¢¶Ä²© doit avoir acc¨¨s aux fichiers avec leurs certificats d'autorit¨¦ de certification racine auto-sign¨¦s de niveau sup¨¦rieur. Par exemple, si nous souhaitons des certificats de deux autorit¨¦s de certification racine ind¨¦pendantes, nous pouvons placer leurs certificats dans un fichier /home/zabbix/zabbix_ca_file
ainsi :
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Development group, CN=Root1 CA
...
Subject: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Development group, CN=Root1 CA
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
...
X509v3 extensions:
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
...
-----BEGIN CERTIFICATE-----
MIID2jCCAsKgAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MRMwEQYKCZImiZPyLGQB
....
9wEzdN8uTrqoyU78gi12npLj08LegRKjb5hFTVmO
-----END CERTIFICATE-----
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Development group, CN=Root2 CA
...
Subject: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Development group, CN=Root2 CA
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
....
X509v3 extensions:
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
....
-----BEGIN CERTIFICATE-----
MIID3DCCAsSgAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MRMwEQYKCZImiZPyLGQB
...
vdGNYoSfvu41GQAR5Vj5FnRJRzv5XQOZ3B6894GY1zY=
-----END CERTIFICATE-----
2. Placer la cha?ne de certificats du serveur Áú»¢¶Ä²© dans un fichier, par exemple, /home/zabbix/zabbix_server.crt
:
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Development group, CN=Signing CA
...
Subject: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Development group, CN=Áú»¢¶Ä²© server
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
...
X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Basic Constraints:
CA:FALSE
...
-----BEGIN CERTIFICATE-----
MIIECDCCAvCgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgTETMBEGCgmSJomT8ixk
...
h02u1GHiy46GI+xfR3LsPwFKlkTaaLaL/6aaoQ==
-----END CERTIFICATE-----
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 2 (0x2)
Signature Algorithm: sha1WithRSAEncryption
Issuer: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Development group, CN=Root1 CA
...
Subject: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Development group, CN=Signing CA
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
...
X509v3 extensions:
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE, pathlen:0
...
-----BEGIN CERTIFICATE-----
MIID4TCCAsmgAwIBAgIBAjANBgkqhkiG9w0BAQUFADB+MRMwEQYKCZImiZPyLGQB
...
dyCeWnvL7u5sd6ffo8iRny0QzbHKmQt/wUtcVIvWXdMIFJM0Hw==
-----END CERTIFICATE-----
Ici, le premier est le certificat du serveur Áú»¢¶Ä²©, suivi du certificat interm¨¦diaire de l'autorit¨¦ de certification.
3. Placer la cl¨¦ priv¨¦e du serveur Áú»¢¶Ä²© dans un fichier, par exemple, /home/zabbix/zabbix_server.key
:
-----BEGIN PRIVATE KEY-----
MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQC9tIXIJoVnNXDl
...
IJLkhbybBYEf47MLhffWa7XvZTY=
-----END PRIVATE KEY-----
4. Modifier les param¨¨tres TLS dans le fichier de configuration du serveur Áú»¢¶Ä²© comme suit :
TLSCAFile=/home/zabbix/zabbix_ca_file
TLSCertFile=/home/zabbix/zabbix_server.crt
TLSKeyFile=/home/zabbix/zabbix_server.key
1. Pr¨¦parez les fichiers avec les certificats de l'autorit¨¦ de certification de niveau sup¨¦rieur, le certificat proxy (cha?ne) et la cl¨¦ priv¨¦e, comme d¨¦crit dans Configuration du certificat sur le serveur Áú»¢¶Ä²©. Modifiez les param¨¨tres TLSCAFile
, TLSCertFile
, TLSKeyFile
dans la configuration du proxy en cons¨¦quence.
2. Pour un proxy actif modifier le param¨¨tre TLSConnect
:
Pour un proxy passif modifier le param¨¨tre TLSAccept
:
3. Vous disposez maintenant d'une configuration de proxy minimale bas¨¦e sur un certificat. Vous pouvez si vous le souhaitez am¨¦liorer la s¨¦curit¨¦ du proxy en d¨¦finissant les param¨¨tres TLSServerCertIssuer
et TLSServerCertSubject
(voir Restriction de l'¨¦metteur et du d¨¦tenteur autoris¨¦s).
4. Dans le fichier final de configuration du proxy, les param¨¨tres TLS peuvent ressembler ¨¤ ceci :
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. Configurer le chiffrement pour ce proxy dans l'interface Áú»¢¶Ä²© :
Dans les exemples ci-dessous, les champs D¨¦livr¨¦ par et Sujet sont remplis - voir dans Restriction de l'¨¦metteur et du sujet autoris¨¦s pourquoi et comment utiliser ces champs.
Pour un proxy actif
Pour un proxy passif
1. Pr¨¦parer les fichiers avec les certificats de l'autorit¨¦ de certification de niveau sup¨¦rieur, le certificat agent (cha?ne) et la cl¨¦ priv¨¦e, comme d¨¦crit dans Configuration du certificat sur le serveur Áú»¢¶Ä²©. Modifiez les param¨¨tres TLSCAFile
, TLSCertFile
, TLSKeyFile
dans la configuration de l'agent en cons¨¦quence.
2. Pour les surveillances actives, modifier le param¨¨tre TLSConnect
:
Pour les surveillances passives, modifier le param¨¨treTLSAccept
:
3. Vous disposez maintenant d'une configuration minimale agent bas¨¦e sur certificat. Vous pouvez si vous le souhaitez am¨¦liorer la s¨¦curit¨¦ des agents en d¨¦finissant les param¨¨tres TLSServerCertIssuer
et TLSServerCertSubject
. (voir Restriction de l'¨¦metteur et du sujet autoris¨¦s).
4. Dans le fichier final de configuration de l'agent, les param¨¨tres TLS peuvent ressembler ¨¤ ceci :
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
(L'exemple suppose que l'h?te est surveill¨¦ via un proxy, d'´Ç¨´ le CN "subject" du certificat positionn¨¦ sur Áú»¢¶Ä²© proxy.)
5. Configurer le chiffrement pour cet agent dans l'interface Áú»¢¶Ä²© :
Dans l'exemple ci-dessous, les champs D¨¦livr¨¦ par et Sujet sont remplis - voir dans Restriction de l'¨¦metteur et du sujet autoris¨¦s pourquoi et comment utiliser ces champs.
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:
Lorsque deux composants (par exemple serveur Áú»¢¶Ä²© et agent) ¨¦tablissent une connexion TLS, ils v¨¦rifient chacun les certificats de l'autre. Si un certificat homologue sign¨¦ par une autorit¨¦ de certification de confiance (avec un certificat de niveau sup¨¦rieur pr¨¦configur¨¦ dans ?TLSCAFile?), est valide, n'a pas expir¨¦ et passe d'autres v¨¦rifications, alors la communication peut continuer. L'¨¦metteur et le sujet du certificat ne sont pas v¨¦rifi¨¦s dans ce cas le plus simple.
Il existe un risque : toute personne poss¨¦dant un certificat valide peut usurper l'identit¨¦ de quelqu'un d'autre (par exemple, un certificat d'h?te peut ¨ºtre utilis¨¦ pour emprunter l'identit¨¦ d'un serveur). Cela peut ¨ºtre acceptable dans les petits environnements ´Ç¨´ les certificats sont sign¨¦s par une autorit¨¦ de certification interne d¨¦di¨¦e et ´Ç¨´ le risque de personnification est faible.
Si votre autorit¨¦ de certification de niveau sup¨¦rieur est utilis¨¦e pour ¨¦mettre d'autres certificats qui ne doivent pas ¨ºtre accept¨¦s par Áú»¢¶Ä²© ou si vous souhaitez r¨¦duire le risque d'usurpation d'identit¨¦, vous pouvez restreindre les certificats autoris¨¦s en sp¨¦cifiant leurs cha?nes d'¨¦metteur et de sujet.
Par exemple, vous pouvez ¨¦crire dans le fichier de configuration du proxy Áú»¢¶Ä²© :
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
Avec ces param¨¨tres, un proxy actif ne communiquera pas avec le serveur Áú»¢¶Ä²© avec une cha?ne ¨¦mettrice ou une cha?ne sujet diff¨¦rente dans le certificat, un proxy passif n'acceptera pas les demandes de ce serveur.
Quelques notes sur la correspondance de cha?ne ¨¦metteur ou sujet :
L'ordre des champs dans les cha?nes D¨¦livrer par et Sujet et le formatage sont importants ! Áú»¢¶Ä²© suit les recommandations de la et utilise l'ordre "inverse" des champs.
L'ordre inverse peut ¨ºtre illustr¨¦ par l'exemple suivant :
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
Notez qu'il commence par le niveau bas (CN), passe au niveau interm¨¦diaire (OU, O) et termine par les champs de niveau sup¨¦rieur (DC).
OpenSSL affiche par d¨¦faut les champs Issuer et Subject du certificat dans l'ordre "normal", en fonction des options suppl¨¦mentaires utilis¨¦es :
$ 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
Ici, les cha?nes Issuer et Subject commencent par le niveau sup¨¦rieur (DC) et se terminent par un champ de bas niveau (CN), les espaces et les s¨¦parateurs de champs d¨¦pendent des options utilis¨¦es. Aucune de ces valeurs ne correspondra dans les champs D¨¦livr¨¦ et Sujet de Áú»¢¶Ä²© !
Pour obtenir des cha?nes Issuer et Subject correctes utilisables dans Áú»¢¶Ä²©, ex¨¦cutez OpenSSL avec les options sp¨¦ciales
-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
Maintenant, les champs de cha?nes sont dans l'ordre inverse, les champs sont s¨¦par¨¦s par des virgules, peuvent ¨ºtre utilis¨¦s dans les fichiers de configuration et l'interface Áú»¢¶Ä²©.
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
Si un certificat est compromis, l'autorit¨¦ de certification peut la r¨¦voquer en l'incluant dans la liste de r¨¦vocation de certificats. Les listes de r¨¦vocation de certificats peuvent ¨ºtre configur¨¦es dans le fichier de configuration du serveur, du proxy et de l'agent ¨¤ l'aide du param¨¨tre TLSCRLFile
. Par exemple :
´Ç¨´ zabbix_crl_file
peut contenir des listes de r¨¦vocation de certificats de plusieurs autorit¨¦s de certification et ressembler ¨¤ :
-----BEGIN X509 CRL-----
MIIB/DCB5QIBATANBgkqhkiG9w0BAQUFADCBgTETMBEGCgmSJomT8ixkARkWA2Nv
...
treZeUPjb7LSmZ3K2hpbZN7SoOZcAoHQ3GWd9npuctg=
-----END X509 CRL-----
-----BEGIN X509 CRL-----
MIIB+TCB4gIBATANBgkqhkiG9w0BAQUFADB/MRMwEQYKCZImiZPyLGQBGRYDY29t
...
CAEebS2CND3ShBedZ8YSil59O6JvaDP61lR5lNs=
-----END X509 CRL-----
Le fichier CRL est charg¨¦ uniquement au d¨¦marrage de Áú»¢¶Ä²©. La mise ¨¤ jour de la liste de r¨¦vocation de certificats n¨¦cessite un red¨¦marrage.
Si le composant Áú»¢¶Ä²© est compil¨¦ avec OpenSSL et que des listes de r¨¦vocation de certificats sont utilis¨¦es, chaque autorit¨¦ de certification de niveau sup¨¦rieur et interm¨¦diaire des cha?nes de certificats doit avoir une liste de r¨¦vocation de certificats (elle peut ¨ºtre vide) dans TLSCRLFile
.