TLS/SSL handshake uses asymmetric (public/private) keys to negotiate a symmetric key. After the handshake is complete, the symmetric key is used to encrypt/decrypt the application data (payload) to be transmitted over the wire. jSSLKeyLog is a Java agent which can be injected into the JVM to dump the symmetric key to a file, which then is used later by Wireshark to decode the tcpdump capture.
1) Ask MuleSoft Support to share a copy of jSSLKeyLog.jar file, and copy the jar file to a local directory.
2) Configure jSSLKeyLog as a Java parameter.
3) Start tcpdump, please reference How to Capture Network Traffic Between Two Systems.
Note: Please start tcpdump before restarting Mule runtime
4) Restart Mule runtime.
5) After the capture finished, collect the tcpdump capture file and the jSSLKeyLogoutput file.
6) Open the tcpdump capture file using Wireshark.
As we can see, at this time, besides SSL handshake messages, all TLS/SSL payload will be encrypted as "Application Data".
7) In WireShark, choose menu "Preference" -> "Protocols" -> "TLS" -> "(Pre)-Master-Secret log filename" -> browse to the jSSLKeyLog output file.
Note: In some old versions of Wireshark, the Protocol is called "SSL" instead of "TLS".
8) You will see the encrypted "Application Data" now shown as clear text.
Note: in some versions of WireShark, the Application Data is still encrypted. You need to select the encrypted frame, look at the byte view, and specifically the tabs underneath the view. You should see a tab "Decrypted TLS" where you will be able to see the decrypted data.
9) Right mouse click on an entry "Follow" -> "SSL Stream".
You will see the complete clear text HTTP payload.
With this approach, we are able to easily capture only (say to a certain host:port) the traffic we needed and decode the TLS/SSL traffic to troubleshoot HTTPS related issues.
001114553

We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to change the default settings.
Privacy Statement
Required cookies are necessary for basic website functionality. Some examples include: session cookies needed to transmit the website, authentication cookies, and security cookies.
Functional cookies enhance functions, performance, and services on the website. Some examples include: cookies used to analyze site traffic, cookies used for market research, and cookies used to display advertising that is not directed to a particular individual.
Advertising cookies track activity across websites in order to understand a viewer’s interests, and direct them specific marketing. Some examples include: cookies used for remarketing, or interest-based advertising.