Come ispezionare il certificato TLS del server SMTP remoto?


63

Abbiamo un server Exchange 2007 in esecuzione su Windows Server 2008. Il nostro client utilizza un server di posta di un altro fornitore. Le loro politiche di sicurezza ci impongono di utilizzare TLS forzato. Funzionava bene fino a poco tempo fa.

Ora, quando Exchange tenta di recapitare la posta al server del client, registra quanto segue:

Impossibile stabilire una connessione protetta al dominio protetto da dominio "ourclient.com" sul connettore "Posta esterna predefinita" poiché la convalida del certificato TLS (Transport Layer Security) per ourclient.com non è riuscita con lo stato "UntrustedRoot. Contattare l'amministratore di ourclient.com per risolvere il problema o rimuovere il dominio dall'elenco protetto da domini.

La rimozione di ourclient.com dall'elenco TLSSendDomainSecure consente di recapitare correttamente i messaggi utilizzando TLS opportunistico, ma questa è una soluzione temporanea nella migliore delle ipotesi.

Il cliente è una società internazionale estremamente grande e sensibile alla sicurezza. Il nostro referente IT afferma di non essere a conoscenza di eventuali modifiche al loro certificato TLS. Gli ho chiesto ripetutamente di identificare l'autorità che ha generato il certificato in modo da poter risolvere l'errore di convalida, ma finora non è stato in grado di fornire una risposta. Per quanto ne so, il nostro cliente avrebbe potuto sostituire il loro certificato TLS valido con uno di un'autorità di certificazione interna.

Qualcuno conosce un modo per ispezionare manualmente il certificato TLS di un server SMTP remoto, come si può fare per il certificato di un server HTTPS remoto in un browser Web? Potrebbe essere molto utile determinare chi ha emesso il certificato e confrontare tali informazioni con l'elenco dei certificati radice attendibili sul nostro server Exchange.

Risposte:


100

Puoi usare OpenSSL. Se devi controllare il certificato con STARTTLS, allora fallo

openssl s_client -connect mail.example.com:25 -starttls smtp

o per una porta smtp sicura standard:

openssl s_client -connect mail.example.com:465

Bellissimo. Errori di convalida simili in OpenSSL, ma molti più dettagli. Ora sappiamo che il problema non è limitato al nostro server di posta.
Skyhawk,

1
@Miles: se stai provando questo su Windows, non dimenticare che opensslnon supporta l'utilizzo dell'archivio certificati di Windows, quindi fallirà sempre la convalida.
Grawity

3
Come posso vedere la data di scadenza del certificato del server?
nimrodm,

9
@nimrodm: pipe the cert to "openssl x509 -text"
Dan Andreatta,

2
@DanAndreatta @nimrodm Oppure esegui il pipe openssl x509 -noout -datesper un output più breve.
Skippy le Grand Gourou,

9

So che questa è una vecchia domanda, ma ancora oggi una domanda rilevante per gli amministratori che desiderano confermare la validità del certificato SSL sui loro server di posta elettronica.

Puoi visitare https://www.checktls.com ed eseguire il test gratuitamente.


Questo ha funzionato per me, era più leggibile della riga di comando
marijnz0r

1
Ho problemi a trovare il test sul sito. Qualche puntatore?
Zero3,

1
C'è una casella di input nella sezione "Internet Secure Email is Easy" con il pulsante "CheckTLS" di colore nero.
Ketan Patel,

@KetanPatel Aaaand ... Dove trovo la sezione "Internet Secure Email is Easy"?
Zero3,

Peccato, questo sembra controllare il dominio per i server SMTP elencati in DNS e interrogarli, ma volevo controllare direttamente il server.
kerridge0,

4

Se non hai OpenSSL, puoi anche usare questo frammento di Python:

import smtplib
import ssl

connection = smtplib.SMTP() 
connection.connect('[hostname].')
connection.starttls()
print ssl.DER_cert_to_PEM_cert(connection.sock.getpeercert(binary_form=True))

dove [nomehost] è il server.

Fonte: https://support.google.com/a/answer/6180220

Questo estrae la libreria OpenSSL per te, il che rende l'installazione un po 'più semplice.


Dalla documentazione del modulo ssl di Python : "Questo modulo utilizza la libreria OpenSSL". Quindi questa risposta è un po 'fuorviante in termini di ciò che sta succedendo.
fbmd

@fbmd Grazie per il feedback. Questa modifica è migliore (vedi l'ultima frase)?
browly

Sì, va meglio.
fbmd,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.