In TLS, né il cliente né il server firmano alcun contenuto. Le firme crittografiche utilizzate nell'handshake iniziale sono destinate all'autenticazione : il client ottiene una certa garanzia che comunica con il server giusto e (se vengono utilizzati i certificati client) il server ottiene una certa garanzia che parla al cliente giusto. Tuttavia, nessuna di queste garanzie è trasferibile: sebbene il client sappia che i dati provengono dal server, il client non riceve alcuna prova che possa essere mostrata a terzi. Questa è l'autenticazione, non il non ripudio.
Anche se il client registra tutto ciò che riguarda l'intera connessione (tutti i byte di dati inviati e ricevuti, tutte le chiavi di crittografia negoziate e così via), ciò dimostra solo una cosa: che, in un momento non specificato, il server era, infatti, un server TLS ed è stato coinvolto in almeno una connessione TLS. Tutto il resto, inclusi tutti i dati ricevuti e inviati dal server, potrebbero essere stati fabbricati in seguito, quindi non può essere una prova (in senso crittografico).
Quindi, non hai trovato un modo per "ottenere la firma del server sul contenuto che sta servendo" per il motivo che questa firma non esiste . Se si desidera che il server firmi le cose, questo deve essere organizzato a livello di protocollo, all'interno del tunnel TLS: chiedere al server di firmare i dati e inviare la firma come parte di ciò che TLS chiama "dati dell'applicazione" ". Ovviamente il server dovrà essere consapevole dell'operazione e questo non fa parte dell'elaborazione TLS (HTTPS) normale.
In alternativa, alcuni ufficiali giudiziari o funzionari simili si connettono al server, ottengono i dati e firmano lui stesso, garantendo in tal modo (in modo legale) che il server serva effettivamente questi contenuti di dati.