Monday, November 3, 2025

C# ssl debug

The .NET Framework 4.8 does not have a direct built-in equivalent to Java's -Djavax.net.debug=ssl:handshake for enabling SSL/TLS handshake debugging from the command line or via a simple configuration switch. However, you can achieve similar diagnostic output using the following approaches:

1. Enable System.Net Tracing (Recommended for .NET Framework)
You can configure System.Net tracing via your application's app.config or web.config file to log detailed information about network activity, including SSL/TLS handshakes.

Example app.config:

xml


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<configuration>
  <system.diagnostics>
    <sources>
      <source name="System.Net" switchName="sourceSwitch" switchType="System.Diagnostics.SourceSwitch">
        <listeners>
          <add name="console"/>
        </listeners>
      </source>
      <source name="System.Net.Sockets" switchName="sourceSwitch" switchType="System.Diagnostics.SourceSwitch">
        <listeners>
          <add name="console"/>
        </listeners>
      </source>
    </sources>
    <switches>
      <!-- Set to "Verbose" for maximum detail -->
      <add name="sourceSwitch" value="Verbose"/>
    </switches>
    <sharedListeners>
      <add name="console" type="System.Diagnostics.TextWriterTraceListener" initializeData="network.log"/>
    </sharedListeners>
    <trace autoflush="true"/>
  </system.diagnostics>
</configuration>
This logs System.Net and System.Net.Sockets activity to a file (network.log).
While it doesn’t dump raw TLS handshake bytes like Java, it does show certificate validation, cipher suites negotiation (indirectly), and connection errors.
For more TLS-specific diagnostics, combine this with Windows-level tools (see below).
⚠️ Note: Tracing impacts performance—use only for debugging. 

2. Use Windows Schannel Logging (OS-Level SSL Debugging)
.NET Framework uses the Windows Schannel (Secure Channel) security package for TLS. You can enable Schannel event logging via the Windows Event Log:

Open Event Viewer → Applications and Services Logs → Microsoft → Windows → Schannel.
Right-click Operational → Enable Log.
Reproduce your SSL issue; handshake errors and details will appear here.

No comments:

Post a Comment