En TLS, ni el cliente ni el servidor firman ningún contenido. Las firmas criptográficas que se utilizan en el protocolo de enlace inicial están destinadas a la autenticación : el cliente obtiene cierta garantía de que habla con el servidor correcto, y (si se usan certificados de cliente) el servidor obtiene alguna garantía de que Habla con el cliente correcto. Sin embargo, ninguna de estas garantías es transferible: aunque el cliente sabe que los datos que obtiene provienen del servidor, el cliente no obtiene ninguna prueba que pueda mostrarse a un tercero. Eso es autenticación, no no repudio.
Incluso si el cliente registra todo lo relacionado con la conexión completa (todos los bytes de datos enviados y recibidos, todas las claves criptográficas negociadas, etc.), esto prueba solo una cosa: que, en algún momento no especificado, el servidor era, de hecho, un servidor TLS, y ha estado involucrado en al menos una conexión TLS. Todo lo demás, incluidos todos los datos recibidos y enviados por el servidor, podría haber sido fabricado posteriormente, por lo que no puede ser una prueba (en el sentido criptográfico).
Por lo tanto, no ha encontrado una manera de "obtener la firma del servidor del contenido que está sirviendo" por la razón de que esta firma no existe . Si desea que el servidor firme cosas, esto debe organizarse a nivel de protocolo, dentro del túnel TLS: haga que el servidor firme debidamente los datos y envíe la firma como parte de lo que TLS llama "datos de la aplicación ". Por supuesto, el servidor tendrá que estar al tanto de la operación, y esto no es parte del procesamiento normal de TLS (HTTPS).
De forma alternativa, haga que un alguacil u otro funcionario similar se conecte al servidor, obtenga los datos y firme ellos mismos, garantizando así (de manera legal) que el servidor efectivamente sirve el contenido de estos datos.