Lo scambio di certificati TLS potrebbe non essere corretto

3

Quando provo a connettermi a xxx ottengo errori di certificato. Un'applicazione Java legacy non riconosce affatto il certificato e FileZilla dice che è stato inviato nell'ordine sbagliato. Quando mi mandano il certificato sembra corretto, quindi presumo che il problema sia relativo a come viene trasmesso durante l'handshake TLS. Non riesco a trovare un'applicazione che eseguirà il dump dell'intero stream, quindi non riesco a vedere cosa viene inviato esattamente. Ecco il registro di FileZilla. L'aumento del livello di registro non aggiunge alcuna informazione utile

Status: Resolving address of rxdatadirector.catamaranrx.com
Status: Initializing TLS...
Error: Server sent unsorted certificate chain in violation of the TLS specifications

Mi sto strappando i capelli. Qualcuno può vedere qual è l'errore con la negoziazione della connessione o sono pazzo?

Il prodotto FYI è IBM Sterling Commerce SFTP e componente FTPS

    
posta Rick DeBay 14.07.2017 - 21:07
fonte

1 risposta

3

Dato che usi Filezilla, la mia ipotesi è che tu stia usando FTP. Il seguente comando si collega al server FTP, si aggiorna a TLS e mostra tra l'altro la catena di certificati:

openssl s_client -starttls ftp -connect rxdatadirector.catamaranrx.com:21
CONNECTED(00000003)
...
Certificate chain
 0 s:/C=US/postalCode=55343/ST=Minnesota/L=Minnetonka/street=9900 Bren Road East/O=UnitedHealth Group Inc./OU=Enterprise SSL Pro/CN=rxdatadirector.catamaranrx.com
   i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Organization Validation Secure Server CA
 1 s:/C=US/postalCode=55343/ST=Minnesota/L=Minnetonka/street=9900 Bren Road East/O=UnitedHealth Group Inc./OU=Enterprise SSL Pro/CN=rxdatadirector.catamaranrx.com
   i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Organization Validation Secure Server CA
 2 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Organization Validation Secure Server CA
   i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
 3 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
   i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
 4 s:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
   i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root

Questo significa che questo server invia per primo il certificato del server [0], che è corretto. Quindi invia di nuovo il certificato del server [1], che è sbagliato. Quindi invia il certificato intermedio [2] che ha emesso il certificato del server, che è corretto. Quindi invia il prossimo certificato in catena [3] che è anche corretto. Ma poi invia la CA radice [4] che non dovrebbe essere inviata, ma di solito verrà semplicemente ignorata se inviata.

Pertanto, è necessario rimuovere [1] e [4] e quindi dovrebbe andare bene.

    
risposta data 14.07.2017 - 21:37
fonte

Leggi altre domande sui tag