Bienvenue sur le site Demey Consulting

Luc-Michel Demey

Consultant indépendant & Organisme de Formation
Architecte Technique Senior - Expert WebSphere / MQSeries / Broker

vous propose son assistance dans les domaines suivants :

  • Architecture
  • Formation
  • Infrastructure
  • Sécurité
  • Expertise
  • Développement

Contact : info @ demey-consulting.fr
Tél. : +33 608 755 655


Demey Consulting
72, avenue du Général de Gaulle
94170 Le Perreux sur Marne - France
N° Siren : 438 797 276 - Code APE : 6202A
N° de TVA intracommunautaire : FR87 438 797 276
Organisme de formation enregistré sous le numéro 11940595694 & "Datadocké" (référençable dans le Datadock)

PNG - 1.4 ko
JPEG - 36.8 ko
Datadocké

lundi 15 octobre 2018
par Luc-Michel Demey

MQ Console - Partie 3 : Sécurisation SSL

Contexte

Ce document fait partie d’une série de 3 articles sur la mise en œuvre de IBM MQ Console :

MQ Console est une nouvelle interface d’administration pour IBM MQ disponible progressivement à partir de la version 9.0.1. Depuis MQ version 9.1, elle dispose de toutes les fonctions nécessaires pour administrer simplement un réseau de Queue Managers. Elle se présente sous la forme d’une application web accessible depuis un navigateur.

Elle ne remplace pas MQ Explorer car elle ne dispose pas de toutes ses fonctions, mais elle couvre plus de 80 % des usages pour l’administration simple des Queue Managers.
L’application Web peut être configurée comme l’utilisateur le souhaite (approche Dashboard).

Utilisation de MQ Console avec des certificats SSL signés par une CA

Il est possible de configurer le serveur mqweb (qui gère MQ Console) pour utiliser https.
Dans ce cas, un certificat auto-signé pour le serveur mqweb est automatiquement créé par MQ, avec localhost comme nom de serveur, et une durée de validité de 1 an.

PNG - 33.3 ko
Certificat auto-signé

Ceci génère des alertes au moment de la connexion à la console, en particulier SEC_ERROR_UNKNOWN_ISSUER :

PNG - 62.2 ko
Connexion non sécurisée

Cette configuration par défaut n’est donc pas valable pour un environnement de production.
La solution est d’installer :

  • Dans le serveur mqweb, un certificat signé par une CA
  • Dans le navigateur, le certificat de la CA qui a signé celui du serveur mqweb

Certificate pour mqweb

Le serveur mqweb utilise un magasin de certificats de type JKS. Ce magasin doit contenir :

  • Le certificat personnel et la clé privée pour mqweb
  • Le certificat de la CA qui a signé celui de mqweb

Le certificat personnel a les caractéristiques suivantes :

  • Clé publique : 1024 or 2048 RSA
  • Algorithme de signature : sha256RSA
  • Hash algorithm : sha256
  • CN = hostname du serveur mqweb (obligatoire)
  • SAN (Subject Alternative Name) : hostname du serveur mqweb (obligatoire)
  • FriendlyName (or label) : doit être enseigné, valeur au choix, par exemple le « short hostname » du serveur Note : En l’absence de champ SAN, le navigateur affichera une erreur ERR_CERT_COMMON_NAME_INVALID.

Exemple avec le hostname = mq91a sur un serveur Linux

  • CN = mq91a
  • SAN (Subject Alternative Name) : mq91a
  • FriendlyName (ou label) : mq91a

Le certificat a les caractéristiques suivantes :

PNG - 10.9 ko
Libellé certificat
PNG - 20.3 ko
Certificat signé par la CA

Magasin de certificats pour mqweb

Pour générer le magasin de certificats de MQ Console, les éléments suivants sont nécessaires :

  • Certificat de CA
  • Certificat personnel pour le serveur mqweb
  • Clé privée du certificat personnel

Paramètres utilisés dans les commandes ci-dessous :

  • Nom du magasin : dc_console.jks
  • Mot de passe du magasin : magpass
  • Fichier du certificat de CA : CA-DC-2018A.crt
  • Certificat personnel pour le serveur mqweb : mq91a.p12 (contient le certificat et la clé privée)

Création et remplissage du magasin :

PNG - 6.7 ko
runmqckm

Installation du magasin sur le serveur

Dans un souci de standardisation, les magasins de certificats sont stockés dans /vat/mqm/mags.

Les différentes étapes à réaliser sont les suivantes :

  • Créer (si necessaire) /var/mqm/mags
  • Uploader le fichier dc_console.jks dans /var/mqm/mags
  • Ajuster les droits du fichier et propriétaire du fichier si nécessaire :
    • chmod 664 dc_console.jks
    • chown mqm:mqm dc_console.jks

Le magasin de certificats doit avoir les droits suivants :

Modification du fichier mqwebuser.xml file

Le fichier mqwebuser.xml doit être modifié pour utiliser le nouveau magasin de certificats. Ce fichier est situé en /var/mqm/web/installations/Installation1/servers/mqweb/.

Editer le fichier mqwebuser.xml file et localiser le bloc suivant :

<!--
<keyStore id="defaultKeyStore" location="key.jks" type="JKS" password="password"/>
<keyStore id="defaultTrustStore" location="trust.jks" type="JKS" password="password"/>
<ssl id="thisSSLConfig" clientAuthenticationSupported="true" keyStoreRef="defaultKeyStore" serverKeyAlias="default" trustStoreRef="defaultTrustStore" sslProtocol="TLSv1.2"/>
<sslDefault sslRef="thisSSLConfig"/>
-->

Décommenter le bloc et modifier ainsi les paramètres :

  • location : chemin + nom du magasin de certificats
  • password : mot de passe encoté du certificate (voir plus bas)
  • serverKeyAlias : label du certificate personnel du serveur mqweb

Resultat :

<keyStore id="defaultKeyStore" location="/var/mqm/mags/dc_console.jks" type="JKS" password="{xor}Mj44Lz4sLA=="/>
<keyStore id="defaultTrustStore" location="/var/mqm/mags/dc_console.jks" type="JKS" password="{xor}Mj44Lz4sLA=="/>
<ssl id="thisSSLConfig" clientAuthenticationSupported="true" keyStoreRef="defaultKeyStore" serverKeyAlias="mq91a" trustStoreRef="defaultTrustStore" sslProtocol="TLSv1.2"/>
<sslDefault sslRef="thisSSLConfig"/>

Encodage des mots de passe

L’outil securityUtility, present dans /opt/mqm/web/bin permet d’encoder une chaîne de caractères, par exemple un mot de passe. C’est de cette manière que les mots de passe du magasin de certificats ont été encodés.

Usage:
./securityUtility encode magpass
        {xor}Mj44Lz4sLA==

Installation du certificat de CA dans le navigateur

Afin que le certificat du serveur mqweb soit accepté sans alerte de sécurité, il ajouter le certificat de la CA (cellui qui a signé le certificat personnel du serveur) dans le trusted root store du navigateur.

Redémarrage et test

Pour redémarrer mqserver, il faut exécuter les commandes suivantes :

  • endmqweb
  • strmqweb
  • dspmqweb L’écran de login d’ IBM MQ Console login s’affiche maintenant sans aucune alerte :
    PNG - 15.1 ko
    Connection MQ Console

(c) Luc-Michel Demey - Octobre 2018.

PNG - 1.4 ko

Brèves

5 février - Annonce IBM MQ 912 CD

IBM annonce ce jour la version 9.1.2 du logiciel IBM MQ. Il s’agit d’une version de type (...)

28 décembre 2018 - rfhutil (IH03) disponible sur github

Le SupportPack IH03 (rfhutil) est maintenant disponible sur github
Pour mémoire, il permet de (...)

20 décembre 2018 - Annonce du fixpack 15 pour IIB version 10

IBM annonce jour le fixpack 15 pour IBM Integration Bus version 10 (Fix Pack (...)

19 décembre 2018 - IBM MQ version 8.0 FixPack 11

IBM annonce ce jour la disponibilité du FixPack 11 pour IBM MQ version 8.

14 décembre 2018 - Annonce du Fix Pack 18.0.0.4 pour WAS 9 Liberty

IBM annonce ce jour le FixPack Fix Pack 18.0.0.4 pour WAS 9 Liberty.

14 décembre 2018 - Annonce du Fix Pack 9.0.0.10 pour WAS 9

IBM annonce ce jour le FixPack 10 pour WAS traditionnal 9.0.0.

Sur le Web

15 février - The i-fixes provided by WebSphere Application Server 8.5.5 using APARs PH04258 and PH04259 contained unsupported levels of Java 7.1 SR4 FP35 and Java 7 SR10 FP35, respectively.

14 février - Security Bulletin: Weaker than expected security in WebSphere Application Server with SP800-131 transition mode (CVE-2018-1996)

14 février - PH05769:Weaker than expected security with WebSphere Application Server (CVE-2018-1996)

11 février - PH01005: NULLPOINTEREXCEPTION WHEN APPLICATION PROVIDES A XALAN JAR

11 février - PH00738: PUSH CDI BEANS TO HTTP SESSION ON ACCESS

11 février - PI97290: NULLPOINTEREXCEPTIONS WHILE ENABLING THE CLASSLOADER TRACES.

8 février - 19.0.0.1: WebSphere Application Server Liberty 19.0.0.1

5 février - Security Bulletin: Potential denial of service in WebSphere Application Server (CVE-2018-10237)

5 février - System Requirements for WebSphere Application Server Network Deployment V8.0

5 février - PH07297:Denial of Service vulnerability in Guava (CVE-2018-10237)

5 février - PH07693: CORRECTIONS ARE NEEDED TO THE DOCUMENTATION IN THE KNOWLEDGE CENTER FOR IBM WEBSPHERE APPLICATION SERVER VERSION 9.0

4 février - How To Change WebSphere Application Server v8.5.x Product and Profiles To Use JDK 8.0 on IBM i 7.4 OS.

1er février - Lifecycle Policy: WebSphere Application Server traditional

31 janvier - Security Bulletin: Multiple Vulnerabilities in IBM® Java SDK affect WebSphere Application Server October 2018 CPU

31 janvier - PH07228: FINAL USAGE METRICS NOT SUBMITTED ON SERVER SHUTDOWN