Activation du protocole SSL pour l'interface xFlow

Pour configurer et activer le protocole SSL pour xflow et un serveur de recherche, procédez comme suit :
casm173
Pour configurer et activer le protocole SSL pour l'
Interface xFlow
et un serveur de recherche, procédez comme suit :
Création d'un certificat autosigné
Procédez comme suit :
  1. Créez un document avec des noms que vous utiliserez dans le référentiel de clés java :
    alias du certificat client
    ,
    fichier de demande de certificat client
    ,
    alias du certificat de serveur
    ,
    fichier de demande de certificat de serveur
    ,
    nom du certificat de serveur
    ,
    nom de la clé privée OpenSSL
    et
    nom du certificat OpenSSL
    . Saisissez les valeurs suivantes dans le document :
    • Référentiel de clés Java = hostname_keystore.jks
    • Alias de certificat client = hostname_clientcert
    • Fichier de demande de certificat client = hostname_clientcert.crt
    • Alias de certificat de serveur = hostname_certname
    • Fichier de demande de certificat de serveur = hostname_certname.csr
    • Nom du certificat de serveur = hostname_certname.crt
    • Nom de la clé privée OpenSSL = hostname_SSL.key
    • Certificat OpenSSL = hostname_SSL.crt
  2. Accédez au dossier
    <répertoire_installation_xFlow>
    \jre\bin, lancez l'interface de ligne de commande et exécutez les commandes suivantes pour générer la clé et les certificats :
    keytool -genkeypair -v -alias hostname_clientcert -dname "CN=<common name>, OU=<Organization Unit>, O=<Organization>, L=<Location>, ST=<State>, C=<Country>" -keystore hostname_keystore.jks -keyalg RSA -keysize 4096 -ext KeyUsage:critical="keyCertSign" -ext BasicConstraints:critical="ca:true" -validity 9999
    keytool -exportcert -v -alias hostname_clientcert -file hostname_clientcert.crt -keystore hostname_keystore.jks -rfc
    keytool -genkeypair -v -alias hostname_certname -dname "CN=<common name>, OU=<Organization Unit>, O=<Organization>, L=<Location>, ST=<State>, C=<Country>" -keystore hostname_keystore.jks -keyalg RSA -keysize 2048 -validity 385
    keytool -certreq -v -alias hostname_certname -keystore hostname_keystore.jks -file hostname_certname.csr
    keytool -gencert -v -alias hostname_clientcert -keystore hostname_keystore.jks -infile hostname_certname.csr -outfile hostname_certname.crt -ext KeyUsage:critical="digitalSignature,keyEncipherment" -ext EKU="serverAuth" -ext SAN="DNS:hostname" -rfc
    keytool -importcert -v -alias hostname_certnameimport -file hostname_certname.crt -keystore hostname_keystore.jks -storetype JKS
    keytool -list -v -keystore hostname_keystore.jks
    Par exemple :
    keytool -genkeypair -v -alias <hostname>_clientcert -dname "<hostname>, OU=sdm, O=ca, L=hyd, ST=ts, C=in" -keystore <hostname>_keystore.jks -keyalg RSA -keysize 4096 -ext KeyUsage:critical="keyCertSign" -ext BasicConstraints:critical="ca:true" -validity 9999
    keytool -exportcert -v -alias <hostname>_clientcert -file <hostname>_clientcert.crt -keystore <hostname>_keystore.jks -rfc
    keytool -genkeypair -v -alias <hostname>_certname -dname "CN=<hostname>, OU=sdm, O=ca, L=hyd, ST=ts, C=in" -keystore <hostname>_keystore.jks -keyalg RSA -keysize 2048 -validity 385
    keytool -certreq -v -alias <hostname>_certname -keystore <hostname>_keystore.jks -file <hostname>_certname.csr
    keytool -gencert -v -alias <hostname>_clientcert -keystore <hostname>_keystore.jks -infile <hostname>_certname.csr -outfile <hostname>_certname.crt -ext KeyUsage:critical="digitalSignature,keyEncipherment" -ext EKU="serverAuth" -ext SAN="DNS:<hostname>" -rfc
    keytool -importcert -v -alias <hostname>_certnameimport -file <hostname>_certname.crt -keystore <hostname>_keystore.jks -storetype JKS
    keytool -list -v -keystore <hostname>_keystore.jks
  3. Copiez les fichiers
    .crt
    et
    .jks
    vers un emplacement unique.
    Nous vous recommandons de créer un dossier
    certificates
    à la racine de votre lecteur local, par exemple
    C:\certificates
    sous
    Windows
    et
    /opt/certificates
    sous
    Linux
    . Les fichiers sont disponibles sous les chemins suivants :
    Windows
    • C:\certificates\hostname_keystore.jks
    • C:\certificates\hostname_certname.crt
    Linux
    • /opt/certificates/
      hostname_keystore.jks
    • /opt/certificates/
      hostname_certname.crt
    Cet article fait référence à ces chemins d'accès ; si vous utilisez un chemin différent, vous devez modifier les chemins d'accès selon votre lecteur local.
  4. Procédez de la manière suivante :
    1. Windows
      Accédez à l'interface de ligne de commande, définissez le répertoire <répertoire_installation_xFlow>\APPS\Services\ et exécutez les commandes ci-dessous :
      echo -Dhttps.port=9444 -Dplay.server.https.keyStore.path=C:\certificates\hostname_keystore.jks -Dplay.server.https.keyStore.password=(keystore password) > incidentmicroservice-17.0.479\INCIDENTMICROSERVICE_config.txt
      echo -Dhttps.port=9446 -Dplay.server.https.keyStore.path=C:\certificates\hostname_keystore.jks -Dplay.server.https.keyStore.password=(keystore password) > collabmicroservice-17.0.479\COLLABMICROSERVICE_config.txt
      echo -Dhttps.port=9448 -Dplay.server.https.keyStore.path=C:\certificates\hostname_keystore.jks -Dplay.server.https.keyStore.password=(keystore password) > insightmicroservice-17.1.694\INSIGHTMICROSERVICE_config.txt
      echo -Dhttps.port=9450 -Dplay.server.https.keyStore.path=C:\certificates\hostname_keystore.jks -Dplay.server.https.keyStore.password=(keystore password) > pushmicroservice-17.0.479\PUSHMICROSERVICE_config.txt
      echo -Dhttps.port=9452 -Dplay.server.https.keyStore.path=C:\certificates\hostname_keystore.jks -Dplay.server.https.keyStore.password=(keystore password) > searchmicroservice-17.0.479\SEARCHMICROSERVICE_config.txt
    2. Linux
      Accédez à l'interface de ligne de commande, définissez le répertoire
      <répertoire_installation_xflow>\APPS\Services\
      et exécutez les commandes ci-dessous :
      echo -Dhttps.port=9444 -Dplay.server.https.keyStore.path=/opt/certificates/hostname_keystore.jks -Dplay.server.https.keyStore.password=(keystore password) > incidentmicroservice-17.0.479/INCIDENTMICROSERVICE_config.txt
      echo -Dhttps.port=9446 -Dplay.server.https.keyStore.path=/opt/certificates/hostname_keystore.jks -Dplay.server.https.keyStore.password=(keystore password) > collabmicroservice-17.0.479/COLLABMICROSERVICE_config.txt
      echo -Dhttps.port=9448 -Dplay.server.https.keyStore.path=/opt/certificates/hostname_keystore.jks -Dplay.server.https.keyStore.password=(keystore password) > insightmicroservice-17.1.694/INSIGHTMICROSERVICE_config.txt
      echo -Dhttps.port=9450 -Dplay.server.https.keyStore.path=/opt/certificates/hostname_keystore.jks -Dplay.server.https.keyStore.password=(keystore password) > pushmicroservice-17.0.479/PUSHMICROSERVICE_config.txt
      echo -Dhttps.port=9452 -Dplay.server.https.keyStore.path=/opt/certificates/hostname_keystore.jks -Dplay.server.https.keyStore.password=(keystore password) > searchmicroservice-17.0.479/SEARCHMICROSERVICE_config.txt
(Facultatif) Configuration de l'interface xFlow pour la connexion aux microservices SSL
Les étapes facultatives indiquées dans cette section sont obligatoires si vous utilisez le protocole HTTPS.
Procédez comme suit :
  1. Sauvegardez les fichiers
    casm.conf.js
    et
    casm.conf.do-not-change.js
    . L’emplacement par défaut pour accéder à ces fichiers est
    C:\Program Files\CA\xFlow\APPS\
    Services\incidentmicroservice-<xxxx>\public\conf
  2. Vérifiez que le protocole SSL est activé pour Tomcat dans CA Service Desk Manager.
  3. Ouvrez le fichier
    casm.conf.do-not-change.js
    et procédez comme suit :
    1. Recherchez le texte
      api : {server : 'https://localhost:8080/'}
      et remplacez le numéro de port par le port 8443.
    2. Enregistrez et fermez le fichier.
  4. Ouvrez le fichier casm.conf.js et configurez les microservices requis pour votre environnement comme suit :
    1. Recherchez le texte
      api : {server : 'https://<hostname>:9004'}
      et remplacez le numéro de port par le port
      9444
      .
    2. Recherchez le texte
      search : {server : 'https://<hostname>:9006'}
      et remplacez le numéro de port par le port
      9446
      .
    3. Recherchez le texte
      websocket : {server : 'wss://<hostname>:9008'}
      et remplacez le numéro de port par le port
      9448
      .
    4. Recherchez le texte
      sdm : {server : 'https://<hostname>/CAisd/pdmweb.exe'}
      et ajoutez le numéro de port
      8443
      au nom d'hôte. Par exemple : http://sdmhostname:8443/CAisd/pdmweb.exe.
    5. Recherchez le texte
      insights: {server : 'https://<hostname>:port'} et ajoutez le numéro de port
      9452
      au nom d'hôte. Par exemple, http://insights:9452.
  5. Enregistrez et fermez le fichier.
  6. Redémarrez le service de l'
    Interface xFlow
    .
  7. Accédez à
    C:\Program Files\CA\xFlow\APPS\Services\insightmicroservice-17.1.705\conf
  8. Ouvrez le fichier
    application.conf
    dans un éditeur de texte.
  9. Recherchez le paramètre
    Security headers
    .
  10. Recherchez
    play.filters.headers.frameOptions = "ALLOW-FROM <http://hostname:9002>"
    .
  11. Remplacez-le par
    play.filters.headers.frameOptions = "ALLOW-FROM <https://hostname: 9444>"
    .
  12. Recherchez
    play.filters.headers.contentSecurityPolicy = "child-src 'self' 'unsafe-inline' 'unsafe-eval' <http://hostname:9002>"
  13. Remplacez-le par
    play.filters.headers.contentSecurityPolicy = "child-src 'self' 'unsafe-inline' 'unsafe-eval' <https://hostname:9444>"
    .
  14. Vérifiez que vous pouvez accéder à l'
    Interface xFlow
    <https://hostname:9444/>
    .
Activez le protocole SSL sur le serveur Tomcat JasperSoft :
Pour activer le protocole HTTPS sur le serveur Tomcat Jasper, procédez comme suit :
  1. Accédez au serveur Tomcat sur lequel Jasper est installé.
  2. Accédez à %JAVA_HOME%\bin et ouvrez l’invite de commande. Dans le répertoire, exécutez la commande suivante :
    keytool -genkey -alias alias -keyalg RSA -keysize 2048 -keystore <jasperkeystoreName>.keystore -sigalg "SHA1withRSA"
  3. Entrez et confirmez les mots de passe de référentiel de clés et de certificat. Lorsque vous êtes invité à indiquer les détails, entrez <nom_hôte_serveur_Tomcat_Jasper_installé> en tant que nom commun (CN). Entrez le reste des informations (organisation, etc.).
  4. Exportez le certificat du référentiel de clés à l’aide de la commande suivante :
    keytool -export -storepass <keystorepassword> -alias alias -keystore <jasperkeystoreName>.keystore -file filename.crt
  5. Une fois le certificat et la clé enregistrés dans le référentiel de clés Tomcat, vous devez configurer le socket sécurisé dans le fichier $CATALINA_BASE/conf/server.xml, où $CATALINA_BASE représente le répertoire de base pour l’instance de Tomcat. Annulez la mise en commentaire de l’élément <Connector> et ajoutez le code suivant en dessous. Remplacez <keystorepassword> par le mot de passe choisi ci-dessus.
    <Connector protocol="org.apache.coyote.http11.Http11Protocol" port="8443" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keyAlias="alias" keystoreFile="%JAVA_HOME%\bin\<jasperkeystoreName>.keystore" keystorePass=<keystorepassword> />
  6. Vous devez configurer l’application Web pour appliquer le protocole SSL en tant qu'unique protocole autorisé. Dans le cas contraire, les demandes HTTP sont toujours traitées.
    Modifiez le fichier
    <js-webapp>/WEB-INF/web.xml
    . A la fin du fichier, apportez les modifications suivantes dans la première balise
    <security-constraint>
    .
    1. Mettez la ligne
      <transport-guarantee>NONE</transport-guarantee>
      en commentaire.
    2. Annulez la mise en commentaire de la ligne
      <transport-guarantee>CONFIDENTIAL</transport-guarantee>
      .
  7. Connectez-vous au serveur Jasper via
    https://hostname:8443/jasperserver-pro/
    pour vérifier les modifications.
Pour plus d'informations sur la sécurité des applications JasperSoft, reportez-vous à la page https://community.jaspersoft.com/documentation/jasperreports-server-ultimate-guide/v561/using-ssl-web-server.
Activation du protocole SSL pour les microservices Insights
Après la configuration du serveur de rapports JasperSoft pour le protocole SSL, activez ce protocole pour les microservices Insights comme suit :
  1. Connectez-vous à
    CA SDM classique, Administration
    ,
    Interface xFlow
    ,
    Général
    . Sélectionnez
    insights.domain
    dans la liste des configurations générales.
  2. Remplacez
    nom_hôte:8080
    (par défaut) par
    nom_hôte_Jasper:8443
    (si 8443 est le port SSL de votre serveur JasperSoft).
  3. Enregistrez les changements.
  4. A présent, modifiez le protocole Insights. Dans la liste des configurations générales (
    étape 1
    ) de xFlow, sélectionnez
    insights.protocol
    et remplacez HTTP par HTTPS.
  5. Enregistrez les changements.
  6. Redémarrez les services de l’interface d'analyste xFlow.
Ajout du certificat Jasper au référentiel d’approbations d'Insights
Pour obtenir des informations pour vous connecter à un server Jasper HTTPS, le certificat Jasper que vous avez exporté doit être importé dans le référentiel d’approbations d'Insights.
  1. Accédez au répertoire <répertoire_installation_xFlow>\jre\bin et exécutez la commande suivante :
    keytool -importcert -alias alias -file filename.crt -keystore c:\\<Insightkeystorename>.jks -keypass <JasperCertificatePassword> -storepass <InsightsKeyStorePassword>
  2. Accédez au fichier <
    serveur_xFlow>\APPS\Services\insightmicroservice-version\conf\application.conf
    et ajoutez le chemin d'accès au référentiel de clés Java (jks) :
    https configurations
    play.ws.ssl { trustManager = { stores = [ { path = "C:\.jks", password: "<Password for InsightKeystoreName.jks" } ] } }
  3. Redémarrez le serveur Insights.
Activation du protocole SSL pour le chargement d'événements et le serveur de recherche
Par défaut, le protocole SSL/TLS n'est pas activé pour les serveurs de recherche. A des fins de sécurité de l'interaction des microservices de recherche et du chargement d'événements avec le serveur de recherche, vous pouvez configurer SSL. Le protocole SSL crypte toutes les communications avec le serveur de recherche.
Etape 1: installation et configuration di proxy inverse sur le serveur ngnix
La procédure suivante décrit la procédure de configuration du serveur
nginx-1.10.0
en tant que proxy inverse sous Windows. Vous pouvez suivre une procédure similaire pour configurer le proxy inverse sur Apache ou d'autres serveurs similaires.
Condition préalable
  • Téléchargez et installez le serveur
    nginx-1.10.0
    sur chaque serveur de recherche.
Configurez le serveur nginx en tant que proxy inverse sur tous les serveurs de recherche dans le cluster.
Procédez comme suit :
  1. Accédez au dossier
    <nginx_install>\conf
    et définissez les détails du serveur de recherche dans le fichier
    nginx.conf
    .
    • Recherchez la section
      server
      dans le fichier et effectuez les actions suivantes :
      • (Facultatif) Modifiez le numéro de port d’
        écoute
        , le cas échéant.
        Par exemple, si les services IIS sont en cours d’exécution et écoutent le port 80, indiquez un numéro de port différent dans la propriété
        listen
        .
      • Modifiez la valeur de
        proxy_pass
        dans la section
        location
        et définissez le numéro de port du serveur de recherche.
        Numéro de port par défaut
        : 9012.
        server {
        listen 80;
        server_name localhost;
        #charset koi8-r;
        #access_log logs/host.access.log main;
        location / {
        proxy_pass http://localhost:9012;
        proxy_read_timeout 90;
        }
      • Enregistrez le fichier.
  2. Vérifiez la configuration :
    • Dans l’invite de commande, accédez au dossier
      nginx
      et exécutez le script
      nginx.exe
      pour démarrer le serveur ngnix.
    • Accédez au serveur de recherche :
      http://<nom_hôte>:<port_écoute>/
      .
      Par exemple, accédez à http://localhost:80/.
      Un message apparaît et affiche les détails du serveur de recherche, tels que le nom et la version du cluster, au format JSON.
      Pour résoudre une erreur, consultez le fichier
      logs\error.log
      .
Etape 1.1 : création d’un certificat SSL
Configuration requise
  • Vérifiez que OpenSSL 0.9.8zh est installé.
Vous pouvez créer un certificat sur un système sur lequel OpenSSL est installé. Toutefois, créez le certificat SSL pour chaque serveur de recherche dans le cluster.
Procédez comme suit :
  1. Dans l’invite de commande, exécutez la commande suivante pour générer le certificat auto-signé :
    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout <hostname>.key -out <hostname>.crt
    Dans cette commande, remplacez <hostname> par le nom d'hôte du serveur de recherche.
  2. Définissez les détails suivants :
    Pays, état, ville, nom de l’organisation, nom de l’unité organisationnelle, nom commun, adresse électronique
    Définissez le nom commun comme nom d'hôte du serveur nginx.
    La commande génère les fichiers
    <hostname>.crt
    et
    <hostname>.key
    .
  3. Répétez les étapes 1 et 2 pour créer les certificats SSL pour chaque serveur de recherche.
Etape 1.2 : configuration des certificats dans le serveur ngnix
Définissez les détails du certificat dans le fichier
ngnix.conf
sur chaque serveur de recherche.
Procédez comme suit :
  1. Dans le serveur de recherche, accédez au dossier
    <nginx_install>\conf
    et modifiez le fichier
    ngnix.conf
    .
  2. Désactivez le port d’écoute existant.
    Par exemple :
    #listen 80
    server {
    #listen 80;
    server_name localhost;
    #charset koi8-r;
    #access_log logs/host.access.log main;
    location / {
    proxy_pass http://localhost:9012/;
    proxy_read_timeout 90;
    }
  3. Définissez le nouveau port d’écoute.
    Par exemple, définissez le nouveau port d’écoute sur 443.
    server {
    #listen 80;
    server_name localhost;
    #charset koi8-r;
    #access_log logs/host.access.log main;
    listen 443 ssl;
    location / {
    proxy_pass http://localhost:9012/;
    proxy_read_timeout 90;
    }
  4. Définissez les détails des certificats de serveur de recherche.
    server {
    #listen 80;
    server_name localhost;
    #charset koi8-r;
    #access_log logs/host.access.log main;
    listen 443 ssl;
    ssl_certificate ./cert/<hostname>.crt;
    ssl_certificate_key ./cert/<hostname>.key;
    location / {
    proxy_pass http://localhost:9012/;
    proxy_read_timeout 90;
    }
  5. Accédez au dossier nginx et exécutez le fichier
    nginx.exe
    pour redémarrer le serveur nginx.
  6. Vérifiez si vous pouvez accéder à l’URL https://.
    Par exemple, accédez à https://<nom_hôte>:443.
  7. Installez les certificats lorsque vous y êtes invité.
Etape 2 : configuration des certificats sur le serveur d'interface xFlow et le processus de chargement d'événements
Etape 2.1 : configuration des certificats sur le serveur d'interface xFlow
La configuration des certificats du serveur de recherche sur le serveur de l'interface xFlow permet une communication sécurisée entre les microservices de recherche et les serveurs de recherche.
Configurez les certificats de chaque serveur de recherche sur chaque serveur de l'interface xFlow. Par exemple, s'il existe deux serveurs de recherche et deux serveurs d'interface xFlow, configurez les certificats des deux serveurs de recherche sur chaque serveur d'interface xFlow.
Procédez comme suit :
  1. Dans le serveur d’interface xFlow, copiez le fichier
    <hostname>.crt
    .
  2. Accédez à l’emplacement de stockage de l'outil keytool.
    Par exemple, accédez à
    C:\Program Files\CA\SC\JRE\1.8.0_74\bin
    .
  3. Exécutez la commande suivante :
    keytool -importcert -alias "<hostname>" -file <hostname>.crt -keystore c:\\es_new_keystore.jks -keypass <password> -storepass <password>
  4. Répétez les étapes 1 et 2 pour chaque serveur de recherche.
    Remplacez les valeurs <hostname> par les noms d'hôte des serveurs de recherche.
  5. Accédez au fichier <serveur_xFlow>\APPS\Services\
    searchmicroservice- 0.1-SNAPSHOT
    \conf\application.conf et ajoutez le chemin d'accès au référentiel de clés java (jks) :
    #https configurations
    play.ws.ssl {
    trustManager = {
    stores = [
    { path = "C:\\es_new_keystore.jks"}
    ]
    }
    }
Etape 2.2 : configuration des variables HTTPS NX pour le processus de chargement d'événements
  1. Vérifiez que vous disposez du chemin d’accès au fichier de référentiel de clés Java créé dans la procédure
    Etape 2.1 : configuration des certificats sur le serveur d’interface xFlow
    .
  2. Générez un mot de passe chiffré en exécutant la commande suivante :
    $<sdm_install>\bin\pdm_pen <password>
    Le mot de passe est identique à celui que vous avez utilisé dans la procédure
    Etape 2.1 : configuration des certificats sur le serveur d'interface xFlow
    .
  3. Exécutez la commande
    pdm_options_mgr
    pour configurer le fichier .jks et le mot de passe chiffré dans les variables
    https
    NX.
    Pour plus d'informations sur la configuration des variables NX, reportez-vous à la section Configuration du chargement d'événements.
Etape 2.3 : mise à jour du numéro de port et du protocole d'un serveur de recherche dans CA SDM
Par exemple, dans CA SDM, mettez à jour le numéro de port et le protocole pour les définir sur
443
et sur
https
respectivement. Pour plus d'informations sur la modification des détails du serveur, reportez-vous à la section Configuration des serveurs de recherche dans CA SDM.
Etape 2.4 : (facultatif) si votre serveur de recherche est sécurisé par un pare-feu, remplacez le port HTTP 9012 par 443.
Etape 2.5 : redémarrage des services de CA SDM
Etape 2.6 : redémarrage du service de serveur de l'interface xFlow de
CA Service Management
.
Configuration de l’authentification unique pour un service
Pour configurer l’authentification unique pour un service, procédez comme suit :
  1. Dans le fichier application.conf, spécifiez
    authenticationtype = SSO
    .
  2. Spécifiez
    SSOArtifactType = en-tête
    .
  3. SSOArtifactType
    peut utliser l’une des valeurs suivantes (cookie, en-tête, paramètre, demande).
  4. Spécifiez
    SSOArtifactName = sm_user
    .
  5. Les utilisateurs doivent être connectés à CA SDM et la politique d’accès doit être définie sur
    Autoriser l’authentification externe
    .
    Si l’utilisateur n’est pas présent dans CA SDM, l'erreur 401 (Non autorisé) est renvoyée.