La nostra installazione di BizTalk è composta da due nodi di carico bilanciati B1 ( 10.137.10.1
) e B2 ( 10.137.10.2
) che elaborano e instradano i messaggi SOAP in entrata.
L'elaborazione non è altro che:
- invio del messaggio di richiesta SOAP a un servizio Web esterno ( WS ) (fuori dal nostro controllo),
- attendi la risposta
- e indirizza la risposta al chiamante originale.
Di fronte al servizio web c'è un reverse proxy nginx ( RP , WS / RP: 145.21.186.179
).
La connessione tra i nodi BizTalk (B1, B2) e WS (o in realtà RP) sarà HTTPS (TLSv1) con autenticazione reciproca / bidirezionale.
B1 funziona
Tutto va bene quando i messaggi vengono instradati dal nodo B1. Viene eseguito un handshake TLSv1 appropriato e infine i dati dell'applicazione (il messaggio di richiesta e di risposta) vengono scambiati. Vedi la schermata qui sotto.
Wire squalo sul nodo B1. (tutto va bene)
- Il certificato di richieste RP al pacchetto 63. (Al segno di 459 secondi.)
- B1 risponde al pacchetto 69. (Anche al segno di 459 secondi.)
B2tace
ImessaggielaboratidalnodoB2falliscono.Nonvediamoun'appropriatastrettadimanoTLSv1.Dopocheilserverrichiedeilcertificatodalclient,diventasilenzioso.
WiresqualosulnodoB2.(ilclientdiventasilenziosodopolarichiestadelcertificatodelserver)
- IlcertificatodirichiesteRPalpacchetto27.(Alsegnodi96secondi.)
- B2nonrisponde.
- TimeoutRP(?)echiudelaconnessionealpaket31.(Alsecondosecondo.)
Domanda
Potresteragazzieragazzepensareadunaragionepercuiquestopotrebbeaccadere?AbbiamocontrollatolaconfigurazionesiasuB1chesuB2enonvediamoledeviazioni.
AnchetestarelaconnessioneconOpenSSLdalnodoB2funzionaperfettamente.Comandoeraquesto:
openssl.exes_client-connectRPHOSTNAMEHERE:443-state-tls1-debug-certclient_ssl.pem-keyclient_ssl.pem
QuestopotrebbeessereunproblemaconSChannel?Qualesarebbeunmotivopernoninviareilcertificatoclientsurichiestadelserver?
Ancheilogdeglieventinoncidannoalcunvantaggio.