Bienvenue sur le site Demey Consulting

Luc-Michel Demey

Consultant indépendant
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
vCard Demey Consulting
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

PNG - 1.4 ko

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

14 décembre - 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 - Annonce du Fix Pack 9.0.0.10 pour WAS 9

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

11 décembre - IBM vend ses logiciels Lotus Notes, WebSphere Commerce, ....

IBM a annoncé la vente d’une partie de ses logiciels historiques à la société indienne HCL : Notes (...)

27 novembre - Annonce IBM MQ version 9.1.1 CD

IBM annonce ce jour la version 9.1.1 de IBM MQ. Il s’agit de la première version Continous (...)

19 novembre - IBM MQ 9.1 FixPack 1

IBM annonce ce jour le premier FixPack pour MQ version 9.1

21 septembre - Annonce du Fix Pack 9.0.0.9 pour WAS 9

IBM annonce ce jour le FixPack 9 pour WAS 9.0.0.

Sur le Web

14 décembre - How to identify MQ client connections and stop them

14 décembre - Finding the number of running channels

11 décembre - Terms of Use

11 décembre - IBM WebSphere Application Server Full Profile Refresh Pack 8.5.5 for distributed platforms

11 décembre - IBM WebSphere Application Server Full Profile Refresh Pack 8.5.5 for distributed platforms

10 décembre - Security Bulletin: Potential Remote code execution vulnerability in WebSphere Application Server (CVE-2018-1904)

10 décembre - PH04060:Potential Remote code execution vulnerability in WebSphere Application Server (CVE-2018-1904)

10 décembre - Security Bulletin: Potential cross-site request forgery in WebSphere Application Server Admin Console (CVE-2018-1926)

10 décembre - PH04234:Potential cross-site request forgery in WebSphere Application Server Admin Console (CVE-2018-1926)

10 décembre - Security Bulletin: Potential Privilege Escalation Vulnerability in WebSphere Application Server (CVE-2018-1901)

10 décembre - PH02811:Potential Privilege Escalation in WebSphere Application Server CVE-2018-1901

10 décembre - PH02992: ECLIPSELINK: ADD SUPPORT FOR NULL FOREIGNKEYS WITH UNIDIRECTIONAL ONETOMANY RELATIONSHIP

10 décembre - PH04524: WEBSPHERE APPLICATION SERVER FIXPACK FAILS TO INSTALL DUE TO INVALID JAVA 6 CHECKING.

10 décembre - PH04012: CHANGING JPA SPEC LEVEL DOES NOT RESET PROVIDER IMPLEMENTATION CLASS IF ONE IS SET.

10 décembre - PI92331: LARGE OBJECT COM/IBM/XML/XML4J/INTERNAL/S1/UTIL/SYMBOLTABLE$ENTRY ARRAYS