Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 

SSL Certificates

 

Secure Sockets Layer (SSL) is an industry standard security protocol is used by websites to protect online transactions. It provides communication privacy so that client/server applications can communicate in a way that is designed to prevent eavesdropping, tampering, and message forgery. To generate an SSL link, a web server requires an SSL certificate. SSL certificates are issued by internal or trusted third-party certifying authorities.

Browsers and operating systems include a preinstalled list of trusted certificates, which are installed in the Trusted Root Certification authorities store.

Self-signed certificates - A self-signed certificate provides basic security, enabling data encryption between the user and the application. Because self-signed certificates cannot be authenticated by any existing known root certificate authorities, users are warned about this unknown certificate and must accept it to proceed.

Internal CA signed certificates - Organizations that have their own internal root certificate authority (CA) can create a certificate by using that internal CA. This certificate is supported by JSA, and the internal root CA is also imported into the JSA environment.

Public CA / Intermediate CA signed - Certificates that are signed by known public CAs and intermediate certificates are supported by JSA.

Public signed certificates can be used directly in JSA, and certificates that are signed with Intermediate CA are installed by using both the signed certificate and the intermediate certificate to provide valid certificate functions.

Note

An intermediate certificate is commonly used by organizations that create multiple SSL keys in their environment, and want to have them signed by a known commercial certificate vendor. When they use the intermediate key, they can then create sub-keys from this intermediate key. When this configuration is used,JSA must be configured with both the intermediate certificate and the host SSL certificate so that connections to the host can verify the full certificate path.

SSL Connections Between JSA Components

To establish all internal SSL connections between components, JSA uses the web server certificate that is preinstalled on theJSA Console.

All trusted certificates for JSA must meet the following requirements:

  • The certificate must be an X.509 certificate and have PEM base64 encoding.

  • The certificate must have a .cert, .crt, .pem, or .der file extension.

  • Keystore files that contain certificates must have the .truststore file extension.

  • The certificate file must be stored in the /opt/qradar/conf/trusted_certificates directory.

Creating an SSL Certificate Signing Request with 2048-bit RSA Keys

  1. Use SSH to log in to the JSA Console.
  2. Generate a private key file by using the following command:

    openssl genrsa -out qradar.key 2048

    Note

    Do not use the private encryption options, because they can cause compatibility issues.

    The qradar.key file is created in the current directory. Keep this file to use when you install the certificate.

  3. Generate the certificate signing request (CSR) file.

    The qradar.csr file is used to create the SSL Certificate, with an internal CA or commercial certificate authorities. Run the following command, and provide necessary information as prompted:

    openssl req -new -key qradar.key -out qradar.csr

    Example output:

  4. If you want to verify the information in the CSR before you send it, type the following command:

    If incorrect information was entered, run the OpenSSL command again to re-create the CSR file.

  5. Use the Secure File Transfer Protocol or another program to securely copy the CSR file to your computer.
  6. Submit the CSR to your internal or commercial certificate authority for signing according to their instructions.Note

    The CSR is identified as a certificate in Apache format.

Creating a Multi-Domain (SAN) SSL Certificate Signing Request

  1. Use SSH to log in to the JSA Console.
  2. Create and save a sancert.conf configuration file containing the following information:

    [ 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

  3. Generate a private key and public certificate signing request (CSR) pair by using the following command:

    openssl req -new -nodes -sha256 -out <csr_filename>.csr -config

    sancert.conf

    -keyout <privatekey_filename>.key

    The CSR file is used to create the SSL certificate, with either an internal CA or commercial certificate authorities The key file is created in the current directory. Keep this file to use when you install the certificate.

  4. If you want to verify the information in the CSR before you send it, type the following command:

    openssl req -noout -text -in <csr_filename>.csr

    If incorrect information was entered, update the sancert.conf configuration file and do 3 again.

  5. Use the Secure File Transfer Protocol or another program to securely copy the CSR file to your computer.
  6. Submit the CSR to your internal or commercial certificate authority for signing, according to their instructions.Note

    The CSR is identified as a certificate in Apache format.

Using Certificates That are Signed by an Internal Certificate Authority

If the certificate is issued by an internal certificate authority and not a commercial certificate provider, JSA must be updated to include the internal root certificate into the local certificate store for proper certificate validation. Root verification certificates are automatically included with the operating system.

Follow these steps to update the trust anchors root certificate store in RedHat.

  1. Copy the CA's root certificate to /etc/pki/ca-trust/source/anchors/.
  2. Run the following command at the SSH command line:

    update-ca-trust

Installing a New SSL Certificate

By default, JSA is configured with a self-signed Security Sockets Layer (SSL) certificate. When you use a self-signed certificate to access the web, you're prompted with a warning message that the certificate is unrecognized. You can replace this SSL certificate with either an updated self-signed certificate, an internal certificate authority (CA) signed, or a public CA signed certificate.

You must have the following:

  • The newly signed certificate from either your internal CA, or a public one.

  • The qradar.key private key to generate the CSR file.

  • An intermediate certificate, if used by your certificate provider.

    Note

    If an intermediate certificate is used, run the install-ssl-cert.sh command with the -i flag to install both the new certificate and the intermediate certificate. When used, it prompts for 3 file paths:

    • SSLCertifficateFile

    • SSLIntermediateCertificateFile

    • SSLCertificateKeyFile

  1. Use SSH to log in to the JSA Console as the root user.
  2. Install the certificate by entering the following command:

    [root@qavm215 ~]# /opt/qradar/bin/install-ssl-cert.sh Path to Public Key File (SSLCertificateFile): /root/new.certs/cert.cert Path to Private Key File (SSLCertificateKeyFile): /root/new.certs/cert.key

    Example output:

  3. On the navigation menu, click Admin.
  4. Click Advanced > Deploy Full ConfigurationNote

    When you deploy the full configuration, JSA restarts all services. Data collection for events and flows stops until the deployment completes.

Revert to Using a Self-Signed Certificate

If you have issues with your certificate, such as an incorrect name or IP address, or if the expiration date passes, or you have a change of IP or host name on your console, follow these steps to generate the self-signed certificate.

  1. Back up the certificates that were installed previously that are not working.

    Existing certificates are detected and reported when you run certificate generation, which can cause the generation process to stop.

    mkdir /root/backup.certs/ mv /etc/httpd/conf/certs/cert.* /root/backup.certs/

  2. Run the /opt/qradar/bin/install-ssl-cert.sh –generate command to generate new certificates.

    This process is also used during JSA installation to generate the initial SSL certificate.

    [root@qavm215 certs]# /opt/qradar/bin/install-ssl-cert.sh --generate Generating self-signed SSL certificate ... (OK) Installing generated SSL certificate ... (OK) Tue Sep 19 14:00:42 ADT 2017 [install-ssl-cert.sh] OK: Generated SSL certificate installed successfully [root@qavm215 certs]#

  3. Move the newly generated certificates to a new directory.
  4. Use the install-ssl-certs.sh script in Install mode to install and distribute the new SSL certificates.

    [root@qavm215 ~]# mkdir /root/updated.certs/

    [root@qavm215 ~]# mv /etc/httpd/conf/certs/cert.* /root/updated.certs/

    [root@qavm215 ~]# /opt/qradar/bin/install-ssl-cert.sh

    Path to Public Key File (SSLCertificateFile): /root/updated.certs/ cert.cert

    Path to Private Key File (SSLCertificateKeyFile): /root/updated.certs/ cert.key

    You have specified the following:

    SSLCertificateFile of /root/updated.certs/cert.cert

    SSLCertificateKeyFile of /root/updated.certs/cert.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)

    Tue Sep 19 14:45:57 ADT 2017 [install-ssl-cert.sh] OK:

    Install SSL Cert Completed

    [root@qavm215 ~]#