Áú»¢¶Ä²© puede utilizar certificados RSA en formato PEM, firmados por una autoridad de certificaci¨®n (CA) p¨²blica o interna.
La verificaci¨®n de certificados se realiza con un certificado de CA preconfigurado. Opcionalmente, se pueden utilizar Listas de revocaci¨®n de certificados (CRL).
Cada componente de Áú»¢¶Ä²© puede tener solo un certificado configurado.
Para obtener m¨¢s informaci¨®n sobre la configuraci¨®n y el funcionamiento de una CA interna, la generaci¨®n y firma de solicitudes de certificados y la revocaci¨®n de certificados, consulte tutoriales como el .
Considere y pruebe cuidadosamente las extensiones de sus certificados. Para obtener m¨¢s detalles, consulte Limitaciones en el uso de extensiones de certificado X.509 v3.
Los siguientes par¨¢metros de configuraci¨®n son compatibles con la configuraci¨®n de certificados en los componentes de Áú»¢¶Ä²©.
±Ê²¹°ù¨¢³¾±ð³Ù°ù´Ç | Obligatorio | ¶Ù±ð²õ³¦°ù¾±±è³¦¾±¨®²Ô |
---|---|---|
TLSCAFile | si | Nombre de ruta completo de un archivo que contiene los certificados de las CA de nivel superior para la verificaci¨®n de certificados de pares. Si se utiliza una cadena de certificados con varios miembros, ordene primero los certificados con las CA de nivel inferior, seguidos de los certificados con las CA de nivel superior. Los certificados de varias CA se pueden incluir en un solo archivo. |
TLSCRLFile | no | Nombre de ruta completo de un archivo que contiene Listas de revocaci¨®n de certificados (CRL). |
TLSCertFile | si | Nombre de ruta completo de un archivo que contiene el certificado. Si utiliza una cadena de certificados con varios miembros, ordene los certificados con el certificado de servidor, proxy o agente primero, seguido de los certificados de CA de nivel inferior y concluya con los certificados de CA de nivel superior. |
TLSKeyFile | si | Nombre completo de ruta de un archivo que contiene la clave privada. Aseg¨²rese de que este archivo solo sea legible por el usuario de Áú»¢¶Ä²© configurando los derechos de acceso adecuados. |
TLSServerCertIssuer | no | Emisor de certificado de servidor permitido. |
TLSServerCertSubject | no | Asunto de certificado de servidor permitido. |
Despu¨¦s de configurar los certificados necesarios, configure los componentes de Áú»¢¶Ä²© para utilizar el cifrado basado en certificados.
A continuaci¨®n, se detallan los pasos para la configuraci¨®n:
1. Prepare el archivo de certificado de CA.
Para verificar los certificados de pares, el servidor Áú»¢¶Ä²© debe tener acceso al archivo que contiene los certificados ra¨ªz de CA de nivel superior y autofirmados. Por ejemplo, si se necesitan certificados de dos CA ra¨ªz independientes, col¨®quelos en un archivo en /home/zabbix/zabbix_ca_file.crt
:
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. Coloque el certificado del servidor Áú»¢¶Ä²©/cadena de certificados en un archivo, por ejemplo, en /home/zabbix/zabbix_server.crt
. El primer certificado es el certificado del servidor Áú»¢¶Ä²©, seguido del certificado de CA intermedio:
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 CERTIFICADO-----
MIIECDCCAvCgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgTETMBEGCgmSJomT8ixk
...
h02u1GHiy46GI+xfR3LsPwFKlkTaaLaL/6aaoQ==
-----FIN DEL CERTIFICADO-----
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-----
Utilice solo los atributos mencionados anteriormente para los certificados de cliente y servidor para evitar afectar el proceso de verificaci¨®n de certificados. Por ejemplo, OpenSSL podr¨ªa no establecer una conexi¨®n cifrada si se utilizan las extensiones X509v3 Subject Alternative Name o Netscape Cert Type. Para obtener m¨¢s informaci¨®n, consulte las limitaciones en el uso de extensiones de certificado X.509 v3.
3. Coloque la clave privada del servidor Áú»¢¶Ä²© en un archivo, por ejemplo, en /home/zabbix/zabbix_server.key
:
-----BEGIN PRIVATE KEY-----
MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQC9tIXIJoVnNXDl
...
IJLkhbybBYEf47MLhffWa7XvZTY=
-----END PRIVATE KEY-----
4. Edite los par¨¢metros de configuraci¨®n de TLS en el archivo de configuraci¨®n del servidor Áú»¢¶Ä²©:
TLSCAFile=/home/zabbix/zabbix_ca_file
TLSCertFile=/home/zabbix/zabbix_server.crt
TLSKeyFile=/home/zabbix/zabbix_server.key
1. Prepare los archivos con los certificados de CA de nivel superior, el certificado/cadena de certificados del proxy Áú»¢¶Ä²© y la clave privada como se describe en la secci¨®n Servidor Áú»¢¶Ä²©. Luego, edite los par¨¢metros TLSCAFile
, TLSCertFile
y TLSKeyFile
en el archivo de configuraci¨®n del proxy Áú»¢¶Ä²© seg¨²n corresponda.
2. Edite par¨¢metros TLS adicionales en el archivo de configuraci¨®n del proxy Áú»¢¶Ä²©:
TLSConnect=cert
TLSAccept=cert
Para mejorar la seguridad del proxy, tambi¨¦n puede configurar los par¨¢metros TLSServerCertIssuer
y TLSServerCertSubject
. Para obtener m¨¢s informaci¨®n, consulte Restricci¨®n de emisores y sujetos de certificados permitidos.
Los par¨¢metros TLS en el archivo de configuraci¨®n de proxy final pueden verse de la siguiente manera:
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
3. Configurar el cifrado para este proxy en la interfaz de Áú»¢¶Ä²©:
En los ejemplos siguientes, los campos Emisor y Asunto est¨¢n completos. Para obtener m¨¢s informaci¨®n sobre por qu¨¦ y c¨®mo utilizar estos campos, consulte Restringir el emisor y el sujeto de certificados permitidos.
Para proxy activo:
Para proxy pasivo:
1. Prepare los archivos con los certificados de CA de nivel superior, el certificado/cadena de certificados del agente Áú»¢¶Ä²© y la clave privada como se describe en la secci¨®n Servidor Áú»¢¶Ä²©. Luego, edite los par¨¢metros TLSCAFile
, TLSCertFile
y TLSKeyFile
en el archivo de configuraci¨®n del agente Áú»¢¶Ä²© seg¨²n corresponda.
2. Edite par¨¢metros TLS adicionales en el archivo de configuraci¨®n del agente Áú»¢¶Ä²©:
TLSConnect=cert
TLSAccept=cert
Para mejorar la seguridad del agente, puede configurar los par¨¢metros TLSServerCertIssuer
y TLSServerCertSubject
. Para obtener m¨¢s informaci¨®n, consulte Restricci¨®n de emisores y sujetos de certificados permitidos.
Los par¨¢metros TLS en el archivo de configuraci¨®n final del agente pueden verse de la siguiente manera. Tenga en cuenta que el ejemplo supone que el equipo est¨¢ supervisado por un proxy, por lo que se especifica como el sujeto del certificado:
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
3. Configure el cifrado en la interfaz de Áú»¢¶Ä²© para el equipo supervisado por este agente.
En el ejemplo siguiente, los campos Emisor y Asunto est¨¢n completos. Para obtener m¨¢s informaci¨®n sobre por qu¨¦ y c¨®mo utilizar estos campos, consulte Restricci¨®n de emisores y sujetos de certificados permitidos.
1. Prepare los archivos con los certificados de CA de nivel superior, el certificado/cadena de certificados del servicio web Áú»¢¶Ä²© y la clave privada como se describe en la secci¨®n Servidor Áú»¢¶Ä²©. Luego, edite los par¨¢metros TLSCAFile
, TLSCertFile
y TLSKeyFile
en el archivo de configuraci¨®n del servicio web Áú»¢¶Ä²© seg¨²n corresponda.
2. Edite un par¨¢metro TLS adicional en el archivo de configuraci¨®n del servicio web Áú»¢¶Ä²©: TLSAccept=cert
Los par¨¢metros TLS en el archivo de configuraci¨®n final del servicio web pueden verse de la siguiente manera:
TLSAccept=cert
TLSCAFile=/home/zabbix/zabbix_ca_file
TLSCertFile=/home/zabbix/zabbix_web_service.crt
TLSKeyFile=/home/zabbix/zabbix_web_service.key
3. Configure el servidor Áú»¢¶Ä²© para conectarse al servicio web Áú»¢¶Ä²© configurado con TLS editando el par¨¢metro WebServiceURL
en el archivo de configuraci¨®n del servidor Áú»¢¶Ä²©:
Cuando dos componentes de Áú»¢¶Ä²© (por ejemplo, servidor y agente) establecen una conexi¨®n TLS, validan los certificados de cada uno. Si un certificado de un par est¨¢ firmado por una CA de confianza (con un certificado de nivel superior preconfigurado en TLSCAFile
), es v¨¢lido, no ha expirado y pasa otras comprobaciones, entonces la comunicaci¨®n entre los componentes puede continuar. En este caso m¨¢s simple, el emisor y el sujeto del certificado no se verifican.
Sin embargo, esto presenta un riesgo: cualquiera con un certificado v¨¢lido puede hacerse pasar por otra persona (por ejemplo, un certificado de host podr¨ªa usarse para hacerse pasar por un servidor). Si bien esto puede ser aceptable en entornos peque?os donde los certificados est¨¢n firmados por una CA interna dedicada y el riesgo de suplantaci¨®n es bajo, puede no ser suficiente en entornos m¨¢s grandes o m¨¢s sensibles a la seguridad.
Si su CA de nivel superior emite certificados que Áú»¢¶Ä²© no deber¨ªa aceptar o si desea reducir el riesgo de suplantaci¨®n de identidad, puede restringir los certificados permitidos especificando su emisor y sujeto.
Por ejemplo, en el archivo de configuraci¨®n del proxy de Áú»¢¶Ä²©, podr¨ªa especificar:
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
Con esta configuraci¨®n, un proxy activo no se comunicar¨¢ con un servidor Áú»¢¶Ä²© cuyo certificado tenga un emisor o sujeto diferente. De manera similar, un proxy pasivo no aceptar¨¢ solicitudes de dicho servidor.
Issuer
y Subject
Las reglas para hacer coincidir las cadenas Issuer
y Subject
son las siguientes:
Issuer
y Subject
se comprueban de forma independiente. Ambas son opcionales.*
) ni expresiones regulares.\
', U+005C):"
' (U+0022), '+
' (U+002B), ',
' (U+002C), ';
' (U+003B), '<
' (U+003C), '>
' (U+003E), '\\
' (U+005C);#
', U+0023);Por ejemplo, si las cadenas de organizaci¨®n Issuer
y Subject
(O
) contienen espacios finales y la cadena de unidad organizativa Subject
(OU
) contiene comillas dobles, estos caracteres deben ser escapados:
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
Áú»¢¶Ä²© sigue las recomendaciones de , que especifica un orden "inverso" para estos campos, comenzando con los campos de nivel m¨¢s bajo (CN
), siguiendo con los campos de nivel medio (OU
, O
) y concluyendo con los campos de nivel m¨¢s alto (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
Por el contrario, OpenSSL muestra de forma predeterminada las cadenas Issuer
y Subject
en orden de nivel superior a nivel inferior. En el siguiente ejemplo, los campos Issuer
y Subject
comienzan con el campo de nivel superior (DC
) y terminan con el campo de nivel inferior (CN
). El formato con espacios y separadores de campo tambi¨¦n var¨ªa seg¨²n las opciones utilizadas y, por lo tanto, no coincidir¨¢ con el formato requerido por Áú»¢¶Ä²©.
$ openssl x509 -noout -in /home/zabbix/zabbix_proxy.crt -issuer -subject
issuer= /DC=com/DC=zabbix/O=Áú»¢¶Ä²© SIA/OU=Grupo de desarrollo/CN=CA firmante
subject= /DC=com/DC=zabbix/O=Áú»¢¶Ä²© SIA/OU=Grupo de desarrollo/CN=Proxy Áú»¢¶Ä²©
$ openssl x509 -noout -text -in /home/zabbix/zabbix_proxy.crt
Certificado:
...
Emisor: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Grupo de desarrollo, CN=CA firmante
...
Asunto: DC=com, DC=zabbix, O=Áú»¢¶Ä²© SIA, OU=Grupo de desarrollo, CN=Proxy Áú»¢¶Ä²©
Para formatear Las cadenas Issuer y Subject se configuran correctamente para Áú»¢¶Ä²©; invoque OpenSSL con las siguientes opciones:
$ 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
La salida estar¨¢ entonces en orden inverso, separada por comas y se podr¨¢ usar en los archivos de configuraci¨®n y el frontend de Áú»¢¶Ä²©:
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
Al implementar certificados X.509 v3 dentro de Áú»¢¶Ä²©, es posible que ciertas extensiones no sean totalmente compatibles o que generen un comportamiento inconsistente.
Extensi¨®n de nombre alternativo del sujeto
Áú»¢¶Ä²© no admite la extensi¨®n Nombre alternativo del sujeto, que se utiliza para especificar nombres DNS alternativos, como direcciones IP o direcciones de correo electr¨®nico. Áú»¢¶Ä²© solo puede validar el valor en el campo Asunto del certificado (consulte Restricci¨®n de emisores y sujetos de certificados permitidos). Si los certificados incluyen el campo subjectAltName
, el resultado de la validaci¨®n del certificado puede variar seg¨²n los kits de herramientas criptogr¨¢ficas espec¨ªficos utilizados para compilar los componentes de Áú»¢¶Ä²©. Como resultado, Áú»¢¶Ä²© puede aceptar o rechazar certificados en funci¨®n de estas combinaciones.
Extensi¨®n de uso de clave extendido
Áú»¢¶Ä²© admite la extensi¨®n Uso de clave extendido. Sin embargo, si se utiliza, generalmente se requiere que se especifiquen los atributos clientAuth (para la autenticaci¨®n de cliente WWW TLS) y serverAuth (para la autenticaci¨®n de servidor WWW TLS). Por ejemplo:
Si bien GnuTLS puede emitir una advertencia por violaciones del uso de claves, generalmente permite que la comunicaci¨®n contin¨²e a pesar de estas advertencias.
Extensi¨®n Name Contraints
La compatibilidad con la extensi¨®n Name Contraints var¨ªa entre los kits de herramientas criptogr¨¢ficas. Aseg¨²rese de que el kit de herramientas elegido admita esta extensi¨®n. Esta extensi¨®n puede restringir que Áú»¢¶Ä²© cargue certificados de CA si esta secci¨®n est¨¢ marcada como cr¨ªtica, seg¨²n el kit de herramientas espec¨ªfico en uso.
Si un certificado se ve comprometido, la autoridad de certificaci¨®n (CA) puede revocarlo incluy¨¦ndolo en una lista de revocaci¨®n de certificados (CRL). Las CRL se administran a trav¨¦s de archivos de configuraci¨®n y se pueden especificar utilizando el par¨¢metro TLSCRLFile
en los archivos de configuraci¨®n del servidor, proxy y agente. Por ejemplo:
En este caso, zabbix_crl_file.crt
puede contener CRL de varias CA y podr¨ªa verse as¨ª:
-----BEGIN X509 CRL-----
MIIB/DCB5QIBATANBgkqhkiG9w0BAQUFADCBgTETMBEGCgmSJomT8ixkARkWA2Nv
...
treZeUPjb7LSmZ3K2hpbZN7SoOZcAoHQ3GWd9npuctg=
-----END X509 CRL-----
-----BEGIN X509 CRL-----
MIIB+TCB4gIBATANBgkqhkiG9w0BAQUFADB/MRMwEQYKCZImiZPyLGQBGRYDY29t
...
CAEebS2CND3ShBedZ8YSil59O6JvaDP61lR5lNs=
-----END X509 CRL-----
El archivo CRL se carga solo cuando se inicia Áú»¢¶Ä²©. Para actualizar la CRL, reinicie Áú»¢¶Ä²©.
Si los componentes de Áú»¢¶Ä²© se compilan con OpenSSL y se utilizan CRL, aseg¨²rese de que cada CA de nivel superior e intermedio en las cadenas de certificados tenga una CRL correspondiente (incluso si est¨¢ vac¨ªa) incluida en el TLSCRLFile
.