Certificados SSL
La capa de sockets seguros (SSL) es un protocolo de seguridad estándar de la industria que utilizan los sitios web para proteger las transacciones en línea. Proporciona privacidad de comunicación para que las aplicaciones de cliente/servidor puedan comunicarse de una manera diseñada para evitar escuchas, manipulación y falsificación de mensajes. Para generar un vínculo SSL, un servidor web requiere un certificado SSL. Los certificados SSL son emitidos por autoridades de certificación internas o de terceros de confianza.
Los navegadores y los sistemas operativos incluyen una lista preinstalada de certificados de confianza que se instalan en el almacén de autoridades de certificación raíz de confianza.
Certificados autofirmados : un certificado autofirmado proporciona seguridad básica, lo que permite el cifrado de datos entre el usuario y la aplicación. Dado que los certificados autofirmados no pueden ser autenticados por ninguna autoridad de certificado raíz conocida existente, se advierte a los usuarios acerca de este certificado desconocido y deben aceptarlo para proceder.
Certificados firmados por CA internas : las organizaciones que tienen su propia entidad de certificación (CA) raíz interna pueden crear un certificado mediante esa CA interna. Este certificado es compatible con JSA y la CA raíz interna también se importa al entorno JSA .
CA pública o CA intermedia firmada : JSA admite certificados firmados por CA públicas conocidas y certificados intermedios.
Los certificados públicos firmados se pueden usar directamente en JSA, y los certificados que se firman con CA intermedia se instalan mediante el uso tanto del certificado firmado como del certificado intermedio para proporcionar funciones de certificado válidas.
Las organizaciones que crean varias claves SSL en su entorno suelen usar un certificado intermedio y quieren que firmen un proveedor de certificados comerciales conocido. Cuando usan la clave intermedia, pueden crear sub-claves a partir de esta clave intermedia. Cuando se utiliza esta configuración, JSA debe configurarse con el certificado intermedio y el certificado SSL de host para que las conexiones con el host puedan comprobar la ruta de certificado completa.
Conexiones SSL entre componentes JSA
Para establecer todas las conexiones SSL internas entre componentes, JSA usa el certificado de servidor web que está preinstalado en laconsola JSA .
Todos los certificados de confianza para JSA deben cumplir los siguientes requisitos:
El certificado debe ser un certificado X.509 y debe tener una codificación base PEM64.
El certificado debe tener una
.cert
extensión de archivo ,.crt
.pem
, o .der.Los archivos de almacén de claves que contienen certificados deben tener la extensión de
.truststore
archivo.El archivo de certificado debe almacenarse en el directorio /opt/qradar/conf/trusted_certificates .
Creación de una solicitud de firma de certificado SSL con claves RSA de 2048 bits
Utilice SSH para iniciar sesión en la consola JSA.
Genere un archivo de clave privada mediante el siguiente comando:
openssl genrsa -out qradar.key 2048
Nota:No use las opciones de cifrado privado, ya que pueden causar problemas de compatibilidad.
El archivo qradar.key se crea en el directorio actual. Mantenga este archivo para usar cuando instale el certificado.
Genere el archivo de solicitud de firma de certificado (CSR).
El
qradar.csr
archivo se utiliza para crear el certificado SSL, con una CA interna o autoridades de certificado comercial. Ejecute el siguiente comando y proporcione la información necesaria según se le solicite:openssl req -new -key qradar.key -out qradar.csr
Salida de ejemplo:
You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:US State or Province Name (full name) []:MyState Locality Name (eg, city) [Default City]:MyCity Organization Name (eg, company) [Default Company Ltd]:MyCompany Organizational Unit Name (eg, section) []:MyCompanyOrg Common Name (eg, your name or your server’s hostname) []:qradar.mycompany.com Email Address []:username@example.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
Si desea comprobar la información en el CSR antes de enviarla, escriba el siguiente comando:
openssl req -noout -text -in qradar.csr
Si se ingresó información incorrecta, ejecute el comando OpenSSL de nuevo para volver a crear el archivo CSR.
Utilice el Protocolo de transferencia segura de archivos u otro programa para copiar de forma segura el archivo CSR a su computadora.
Envíe el CSR a su autoridad de certificación interna o comercial para que firme de acuerdo con sus instrucciones.
Nota:El CSR se identifica como un certificado en formato Apache.
Creación de una solicitud de firma de certificado SSL multidominio (SAN)
Utilice SSH para iniciar sesión en la consola JSA.
Cree y guarde un
sancert.conf
archivo de configuración que contenga la siguiente información:[ req ] default_bits = 2048 # RSA key size encrypt_key = no # Protect private key default_md = sha256 # MD to use utf8 = yes # Input is UTF-8 string_mask = utf8only # Emit UTF-8 strings prompt = no # Prompt for DN distinguished_name = server_dn # DN template req_extensions = server_reqext # Desired extensions [ server_dn ] countryName = <country_or_region_code> # ISO 3166 stateOrProvinceName = <state_or_province> localityName = <city_or_locality> organizationName = <organization_name> organizationalUnitName = <organizational_unit_name commonName = <common_name> # Should match a SAN under alt_names [ server_reqext ] basicConstraints = CA:FALSE keyUsage = critical,digitalSignature,keyEncipherment extendedKeyUsage = serverAuth subjectKeyIdentifier = hash subjectAltName = @alt_names [alt_names] DNS.1 = qradar.example.com #Example DNS.2 = console.example.com #Example IP.3 = 192.0.2.0 #Example
Genere un par de clave privada y solicitud de firma de certificado público (CSR) mediante el siguiente comando:
openssl req -new -nodes -sha256 -out <csr_filename>.csr -config sancert.conf -keyout <privatekey_filename>.key
El archivo CSR se utiliza para crear el certificado SSL, ya sea con una CA interna o autoridades de certificado comercial El archivo de clave se crea en el directorio actual. Mantenga este archivo para usar cuando instale el certificado.
Si desea comprobar la información en el CSR antes de enviarla, escriba el siguiente comando:
openssl req -noout -text -in <csr_filename>.csr
Si se ingresó información incorrecta, actualice el archivo de
sancert.conf
configuración y vuelva a hacer 3 .Utilice el Protocolo de transferencia segura de archivos u otro programa para copiar de forma segura el archivo CSR a su computadora.
Envíe el CSR a su autoridad de certificación interna o comercial para su firma, de acuerdo con sus instrucciones.
Nota:El CSR se identifica como un certificado en formato Apache.
Uso de certificados firmados por una autoridad de certificación interna
Si el certificado es emitido por una autoridad de certificación interna y no por un proveedor de certificados comercial, JSA debe actualizarse para incluir el certificado raíz interno en el almacén de certificados local para la validación adecuada del certificado. Los certificados de verificación raíz se incluyen automáticamente en el sistema operativo.
Siga estos pasos para actualizar el almacén de certificados raíz de anclajes de confianza en RHEL en la consola JSA y todos los hosts JSA.
Copie el certificado raíz de la CA a /etc/pki/ca-trust/source/anchors/ en la consola JSA.
Ejecute los siguientes comandos en la línea de comandos SSH en la consola:
/opt/qradar/support/all_servers.sh -p /etc/pki/ca-trust/source/anchors/<root_certificate> - r /etc/pki/ca-trust/source/anchors
/opt/qradar/support/all_servers.sh -C update-ca-trust
Instalación de un nuevo certificado SSL
De forma predeterminada, JSA se configura con un certificado de capa de sockets de seguridad (SSL) que está firmado por una CA interna. Cuando inicie sesión en la consola por primera vez, se le pedirá un mensaje de advertencia de que su conexión no es segura o no es privada. Puede reemplazar el certificado SSL con su propio certificado autofirmado, un certificado firmado por una entidad de certificación privada (CA) o un certificado público firmado por una CA.
Debe tener la siguiente información:
El archivo de certificados SSL recién firmado de su CA interna o pública.
La
qradar.key
clave privada para generar el archivo CSR.Un certificado intermedio, si lo utiliza el proveedor de certificados.
Nota:Si se utiliza un certificado intermedio, ejecute el comando install-ssl-cert.sh con la marca -i para instalar tanto el certificado nuevo como el certificado intermedio. Cuando se usa, solicita tres rutas de archivo:
SSLCertifficateFile
SSLIntermediateCertificateFile
SSLCertificateKeyFile
Si utiliza un certificado DER, debe convertirlo a un certificado PEM escribiendo la siguiente línea de comandos:
openssl x509 -in <cert>.der -inform der -outform pem -out <cert>.pem
Utilice SSH para iniciar sesión en la consola de JSA como usuario raíz. Para instalar el certificado, ingrese el siguiente comando:
/opt/qradar/bin/install-ssl-cert.sh
En el símbolo de ruta al archivo de clave pública (SSLCertificateFile), escriba la ruta al archivo de clave pública. Por ejemplo:
/root/new.certs/cert.cert
En el símbolo de ruta al archivo de clave privada (SSLCertificateKeyFile), escriba la ruta al archivo de clave privada. Por ejemplo:
/root/new.certs/qradar.key
Salida de ejemplo:
You have specified the following: SSLCertificateFile of /root/updated.certs/cert.cert SSLCertificateKeyFile of /root/updated.certs/qradar.key Re-configure Apache now (includes restart of httpd) (Y/[N])? y Backing up current SSL configuration ... (OK) Installing user SSL certificate ... (OK) Reloading httpd configuration: - Restarting httpd service ... (OK) Restarting services: - Stopping hostcontext ... (OK) - Restarting Tomcat ... (OK) - Starting hostcontext ... (OK) Updating deployment: - Copying certificate to managed hosts * 192.0.2.0 ...... (OK) - Restarting hostcontext on managed hosts * 192.0.2.0 ...... (OK) The event collection service must be restarted if WinCollect is used in your environment. Restart the event collection service now (y/[n])? y - Restarting ecs-ec-ingress on managed hosts * 192.0.2.0 ...... (OK) - Restarting ecs-ec-ingress on console ... (OK) Fri Jan 17 10:33:42 EST 2020 [install-ssl-cert.sh] OK: Install SSL Cert Completed [root@qavm215 ~]#
Nota:Recopilación de datos para eventos y flujos que se detiene mientras se reinician los servicios.
Si va a instalar un certificado que no fue generado por JSA o reinstalar un certificado sobrescrito que no fue generado por JSA, haga lo siguiente:
Desactive que el marco de ca reemplace automáticamente el certificado. Ejecute el siguiente comando para deshabilitar la comprobación de certificado de modo que JSA no sobrescriba el certificado:
sed -e "s@\"CertSkip\":[ \t]*\".*\"@\"CertSkip\": \"true\"@" -i /opt/qradar/ca/conf.d/httpd.json
Desactive la supervisión de certificados mediante la modificación de /opt/qradar/ca/conf.d/httpd.json con la línea
"CertMonitorThreshold": 0
Si el install-ssl-cert.sh
script terminó con el mensaje OK: Install SSL Cert Complete, el certificado se instaló correctamente. Si respondió y (sí) al mensaje para reconfigurar Apache, entonces ya está. De lo contrario, debe implementar la configuración completa. En el menú de navegación, haga clic en Administrador y, a continuación, en Advanced > Deploy Full Configuration.
Revertir a certificados generados por la CA local de JSA
Si tiene problemas con el certificado, como un nombre o dirección IP incorrectos, la fecha de vencimiento pasada o la IP o el nombre de host de la consola han cambiado, siga estos pasos para generar certificados firmados por la entidad de certificación local de JSA.
-
Hacer una copia de seguridad de los certificados que se instalaron anteriormente y que no funcionan.
Los certificados existentes se detectan y se notifican cuando se ejecuta la generación de certificados, lo que puede hacer que el proceso de generación se detenga.
mkdir /root/backup.certs/
cp /etc/httpd/conf/certs/cert.* /root/backup.certs/
Actualice los siguientes elementos en el archivo /opt/qradar/ca/conf.d/httpd.json :
Establezca CertMonitorThrestener a su valor original. Si no se conoce el valor original, elimínalo del archivo para que se usen los valores predeterminados.
Establezca CertSkip en false.
Ejecute el comando /opt/qradar/ca/bin/install_qradar_ssl_cert.sh para generar nuevos certificados.