This is a complete example how to troubleshot network connectivity to a HOST from a station A that is working and a station B that is not working
Phase 1 – Validate Basic Connectivity
1. DNS Resolution Comparison
Run on both servers:
nslookup <Veridium_API_FQDN>
or
Resolve-DnsName <Veridium_API_FQDN>
Compare:
-
Returned IP addresses
-
DNS server used
-
Response time
Expected:
Server A and B should resolve to exactly the same backend IP.
Possible root causes:
-
Wrong DNS server
-
Stale DNS cache
-
Split DNS issue
-
Hosts file override
Check:
type C:\Windows\System32\drivers\etc\hosts
2. Ping Test
ping <Veridium_API_FQDN>
If ICMP is blocked, continue with:
Test-NetConnection <Veridium_API_FQDN> -Port 443
Compare:
|
Test |
Server A |
Server B |
|---|---|---|
|
DNS Resolution |
|
|
|
TCP 443 Reachable |
|
|
|
RTT |
|
|
Phase 2 – Verify HTTPS Reachability
3. Browser Test
Open:
https://<Veridium_API_FQDN>/api/bopscertificate
Expected:
-
May return JSON
-
May return API error
-
May return authentication challenge
Anything is acceptable except:
-
Timeout
-
Cannot connect
Document exact behavior.
4. Curl Test
On both machines:
curl -vk https://<Veridium_API_FQDN>/api/bopscertificate
Observe:
-
DNS resolution
-
TCP connect
-
TLS handshake
-
HTTP response
Compare outputs.
Phase 3 – TLS Investigation
WinHTTP timeout sometimes occurs during TLS negotiation.
5. Verify Server Certificate
From browser:
Padlock → Certificate
Compare:
-
Issuer
-
Subject
-
SAN entries
-
Expiry
Or:
openssl s_client -connect <fqdn>:443
Check if Server B can complete handshake.
6. Verify Trusted Root CAs
Run:
certlm.msc
Check:
Trusted Root Certification Authorities
Intermediate Certification Authorities
Compare with Server A.
Possible issue:
-
Missing intermediate CA
-
Missing root CA
-
Corrupted certificate store
7. TLS Protocols
Check registry:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols"
Compare:
-
TLS 1.2 enabled
-
TLS 1.3 enabled (if used)
-
SSL disabled
PowerShell:
[Net.ServicePointManager]::SecurityProtocol
Phase 4 – WinHTTP and Proxy
The error is coming from:
winhttpsendrequestL 12002
This makes proxy configuration highly suspicious.
8. Check WinHTTP Proxy
On both servers:
netsh winhttp show proxy
Compare.
Common findings:
Server A:
Direct access (no proxy server)
Server B:
Proxy Server(s): xxxx
or vice versa.
9. Check Internet Explorer / System Proxy
inetcpl.cpl
Connections → LAN Settings
or:
Get-ItemProperty `
'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings'
Compare.
10. Reset WinHTTP Proxy (if approved)
netsh winhttp reset proxy
Retest.
Phase 5 – Routing & Firewall
11. Trace Route
tracert <Veridium_API_FQDN>
Compare both machines.
Look for:
-
Different routes
-
MPLS path differences
-
Firewall hop drops
12. Port Reachability
Test-NetConnection <Veridium_API_FQDN> -Port 443 -InformationLevel Detailed
Compare:
-
Source IP
-
Route
-
Interface used
13. Firewall Rules
Check local firewall:
Get-NetFirewallProfile
Get-NetFirewallRule | findstr 443
Compare.
Phase 6 – Compare Network Configuration
Gather full configuration from both machines.
Server A
ipconfig /all > C:\Temp\A_ipconfig.txt
route print > C:\Temp\A_route.txt
netsh winhttp show proxy > C:\Temp\A_proxy.txt
Server B
ipconfig /all > C:\Temp\B_ipconfig.txt
route print > C:\Temp\B_route.txt
netsh winhttp show proxy > C:\Temp\B_proxy.txt
Compare:
-
IP
-
Gateway
-
DNS
-
Routing table
-
Proxy
Phase 7 – Application-Level Testing
14. Call API Using PowerShell
On both servers:
Invoke-WebRequest `
-Uri "https://<Veridium_API_FQDN>/api/bopscertificate" `
-UseBasicParsing `
-TimeoutSec 60
Compare:
-
Response
-
Timing
-
Exception
15. Enable Schannel Logging
If TLS issue suspected:
Registry:
HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
Create:
EventLogging = 7
Reboot.
Review:
Event Viewer
Applications and Services Logs
Microsoft
Windows
Schannel
Look for:
-
36871
-
36874
-
36888
Phase 8 – Packet Capture (Most Definitive)
If all above checks appear identical.
Capture simultaneously:
On Server A
pktmon start --capture
or Wireshark.
On Server B
pktmon start --capture
Reproduce login.
Check:
|
Stage |
Server A |
Server B |
|---|---|---|
|
DNS Query |
✓ |
? |
|
TCP SYN |
✓ |
? |
|
TCP SYN/ACK |
✓ |
? |
|
TLS Client Hello |
✓ |
? |
|
TLS Server Hello |
✓ |
? |
|
HTTP Request |
✓ |
? |
|
HTTP Response |
✓ |
? |
This immediately reveals whether the timeout occurs at:
-
DNS
-
TCP connection
-
TLS handshake
-
HTTP layer
-
Load balancer
-
Reverse proxy