Exemple: Échange de message AS2 complet (Avancé)

www.altova.com Imprimer cette rubrique Page précédente Un niveau supérieur Page suivante

Accueil >  Intégration AS2  >

Exemple: Échange de message AS2 complet (Avancé)

Cet exemple illustre un échange de message AS2 plus avancé, avec chiffrage et signature, entre deux partenaires AS2 qui sont tous les deux exécutés sur FlowForce Server. Avant de suivre ce tutoriel, assurez-vous que vous avez déjà suivi le précédent, qui couvre les bases, voir Exemple : Échange de message AS2 complet (simple).

 

Cet exemple illustre le scénario de communication le plus complexe entre deux partenaires AS2 (la première de douze permutations possibles conformément à la section 2.4.2 de RFC 4130), ce qui signifie, essentiellement :

 

L'expéditeur envoie des données AS2 chiffrées
L'expéditeur envoie des données AS2 signées
L'expéditeur demande que le destinataire retourne une MDN signée en réponse au message

 

Hypothèses

Les mêmes expéditeurs ou destinataires sont utilisés comme dans l'exemple précédent, respectivement : Hermes (FlowForce Server sur Linux) et Apollo (FlowForce Server sur Windows)
Hermes veut envoyer à Apollo un message chiffré et signé, et requiert une MDN signée en retour
Apollo et Hermes sont tous les deux exécutés sur un réseau privé local.
Le serveur AS2 de réception (Apollo) acceptera les requêtes HTTP provenant de clients non authentifiés (c'est à dire, que le service AS2 sera accessible publiquement).

 

Exigences préalables

FlowForce Server Advanced Edition doit être installé et mis sous licence sur les appareils Apollo et Hermes.
Sur les serveurs Apollo et Hermes, l'interface d'administration FlowForce Web doit être en bon fonctionnement sur l'hôte et le port configuré (par exemple, http://apollo:8082 et http://hermes:8082, en partant du principe que "apollo" et "hermes" sont les noms d'hôte respectifs). Voir aussi Définir les paramètres de réseau.

 

Configurer les certificats d'Apollo

Dans cette étape de configuration, les choses suivantes se produisent :

 

1.Apollo génère un certificat public et une clé privée et d'importer les deux dans FlowForce Server.
2.Apollo envoie le certificat public (sans la clé privée) sur Hermes.
3.Hermes importe le certificat public d'Apollo dans FlowForce Server.

 

Pourquoi cela est nécessaire :

 

Avant d'envoyer le message sur Apollo, Hermes nécessite la clé public d'Apollo pour le chiffrer. Sur réception du message de la part d'Hermes, Apollo le déchiffrera en utilisant sa propre clé privée.
Avant d'envoyer la MDN requise par Hermes, Apollo le signera en utilisant sa propre clé privée. Lors de la réception la MDN signée, Hermes nécessite le certificat public d'Apollo pour vérifier la signature.

 

En ce qui concerne cet exemple, nous allons générer un certificat auto-signé en utilisant la bibliothèque OpenSSL (https://www.openssl.org/) y compris avec Cygwin (https://cygwin.com/). Il est uniquement destiné à des fins de démonstration ; dans un scénario réaliste, vous pourrez avoir envie d'utiliser d'autres outils pour générer le certificat SSL, ou il peut être disponible dans votre institution.

 

Pour générer le certificat auto-signé pour Hermes, ouvrir le terminal Cygwin et saisir la ligne suivante :

 

openssl req -x509 -newkey rsa:2048 -keyout apollo_private.pem -out apollo_public.pem -days 365

 

Lorsque vous êtes invité à saisir une phrase de passe, saisir le mot de passe sous lequel vous souhaitez chiffrer la clé privée, attention à ne pas l'oublier. Vous aurez besoin de ce mot de passe ultérieurement pour importer le certificat dans FlowForce Server. Passer par toutes les étapes de l'Assistant, et saisir tous les champs requis ("Country", "State or Province Name", "Locality Name", "Organization Name", "Department Name", "Common Name" et "Email").

ff_as2_ex2-01

Lorsque vous terminez l'assistant, la commande ci-dessus génère deux fichiers, apollo_private.pem et apollo_public.pem, dans le répertoire d'accueil Cygwin's (par exemple, C:\cygwin64\home\<user>\, si vous installez Cygwin à C:\cygwin64). Étant donné que cette paire peut uniquement être chargée en tant qu'un seul fichier dans FlowForce Server, exécuter la commande suivante supplémentaire pour copier le certificat public dans le fichier de clé privée :

 

cat apollo_public.pem >> apollo_private.pem

 

Dans l'appareil Apollo, se connecter sur FlowForce Server, cliquer sur le menu Configuration, puis cliquer sur Créer > Créer certificat.

 

Saisir le nom et la description de certificat, cliquer sur Chercher et sélectionner le fichier apollo_private.pem créé précédemment. Veillez à saisir le mot de passe que vous avez créé plus tôt dans cette étape, et cliquez sur Enregistrer.

ff_as2_ex2-02

La paire de certificat public+privé est maintenant importée dans FlowForce Server d'Apollo. Veuillez noter que l'icône ff_ic_certificate_pk et le texte descriptif indiquent que ce fichier de certificat contient les deux :

ff_as2_ex2-03

Pour envoyer la clé publique sur Hermes, copier le fichier apollo_public.pem sur l'appareil Hermes. Ensuite, se connecter sur FlowForce Server sur l'appareil Hermes et l'importer en utilisant les mêmes étapes que ci-dessus (cette fois une clé privée n'est pas présente dans le fichier, donc un mot de passe n'est pas nécessaire).

ff_as2_ex2-04

Veuillez noter que l'icône ff_ic_certificate_pk et le texte descriptif indiquent que ce fichier de certificat contient uniquement le certificat public (pas de clé privée).

ff_as2_ex2-05

 

Configurer les certificats de Hermes

Dans cette étape de configuration, les choses suivante se produisent :

 

1.Hermes génère un certificat public et une clé privée et l'importer dans FlowForce Server
2.Hermes envoie le certificat public (sans la clé privée) sur Apollo
3.Apollo importe le certificat public Hermes dans FlowForce Server

 

Pourquoi cela est nécessaire :

 

Avant d'envoyer le message à Apollo, Hermes le signera en utilisant sa propre clé privée.
Lors de la réception du message depuis Hermes, Apollo vérifiera la signature du message en utilisant le certificat public d'Hermes.

 

D'abord, créer le certificat public et la clé privée Hermes, suivant les mêmes étapes que pour Apollo. Assurez-vous de remplacer les noms de fichier :

 

openssl req -x509 -newkey rsa:2048 -keyout hermes_private.pem -out hermes_public.pem -days 365

 

De plus, "Organization name", "Common Name", etc. doivent être ceux d'Hermes :

ff_as2_ex2-06

Ensuite, combiner les deux fichiers dans un seul en utilisant la commande :

 

cat hermes_public.pem >> hermes_private.pem

 

Ensuite, importer hermes_private.pem dans FlowForce Server sur l'appareil Hermes :

ff_as2_ex2-07

Ensuite, copier hermes_public.pem sur l'appareil Apollo et l'importer dans FlowForce Server :

ff_as2_ex2-08

 

Activer le chiffrage AS2, la signature, et la vérification de signature MDN sur Hermes

Sur l'appareil Hermes, éditer les paramètres de partenaire APOLLO comme suit :

ff_as2_ex2-09

 

Activer le déchiffrage AS2, la signature MDN, et la vérification de signature sur Apollo

Sur l'appareil Apollo, éditer les paramètres de partenaire HERMES comme suit :

ff_as2_ex2-10

 

Traiter la MDN

Conformément aux exigences indiquées ci-dessus, Hermes exige qu'Apollo envoie une MDN pour reconnaître la transmission AS2. Nous pouvons calculer le statut de MDN entrante (succès, échec) avec l'aide de la fonction d'expression as2-success. Pour y réussir, se connecter à FlowForce sur un appareil Hermes, et ouvrir la tâche "send-as2" créée précédemment dans Exemple : Échange de message AS2 complet (Simple). Ensuite, modifier la tâche comme indiqué ci-dessous :

ff_as2_ex2-11

Veuillez noter :

 

Le résultat de la première étape d'exécution, de type "AS2 MDN", est maintenant déclaré (voir le champ Attribuer le résultat de cette étape dans).
La case à cocher Abandonner en cas d'erreur est décochée, puisque l'exécution doit continuer à la prochaine étape.
La deuxième étape d'exécution appelle la fonction /system/compute. Cette fonction calcule une expression booléenne avec l'aide de la fonction as2-success. Ce deuxième prend en tant qu'argument la MDN retournée par la première étape d'exécution.

 

Envoyer le message AS2

Vous êtes maintenant d'envoyer le message AS2 chiffré et signé depuis Hermes vers Apollo. Sur les appareils Hermes, copier un fichier .edi sur le répertoire /home/altova/as2/outgoing configuré précédemment. Le fichier déclenche l'exécution de la tâche, et la tâche envoie le fichier au service AS2 sur l'appareil Apollo. La tâche était configurée dans le tutoriel précédent, Exemple : Échange de message AS2 complet.

ff_as2_ex2-12

Pour voir si la tâche a échoué ou a été exécuté correctement, vérifier le journal d'erreur (vous devrez le faire pour Hermes mais aussi sur l'appareil Apollo). Pour plus d'information, voir Consulter le journal de tâche.


© 2019 Altova GmbH