Is it possible to extract the TLS session keys from Lighttpd so we are able to decrypt traffic captured by tcpdump?
Alternatively, we could disable PFS but we prefer not to do that.
Server Fault is a question and answer site for system and network administrators. It only takes a minute to sign up.Sign up to join this community
you can find private key in the file referenced by entry ssl.pemfile in the file /etc/lighttpd/lighttpd.conf
The key is at the beginning before the certificate.
decrypt question was already answered here:
Ssldump is supposed to be able to do that, but it appears to be unmaintained (in the source archive of the latest version, the date of last modification of all files are in 2002 or before) so it is quite possible that it won't support newer SSL/TLS; actually, it is highly implausible that a software from 2002 could process the new encryption formats defined in TLS 1.2 (AES/GCM). TLS 1.1 was published in 2006, and TLS 1.2 in 2008.
OpenSSL is a library that implements the protocol, but is not meant for analysing a recorded session.
You may have better chance with Wireshark, which has ample documentation on how to use it to decrypt recorded sessions.
There is an important parameter to mind: decryption of a passively recorded session (with a copy of the server private key) works only if the key exchange was of type RSA or static DH; with "DHE" and "ECDHE" cipher suites, you won't be able to decrypt such a session, even with knowledge of the server private key. In that case, you will need either the negotiated "master secret", or to use the server private key to actively intercept the connection (in a Man-in-the-Middle setup).
Lighttpd does not support this out-of-the box.
Stefan, a developer of lighttpd, suggested checking out the following answer: