ProxymanApp / Proxyman

Modern. Native. Delightful Web Debugging Proxy for macOS, iOS, and Android ⚡️
https://proxyman.io
5.34k stars 177 forks source link

SSL Handshake Failed When Using Proxyman with Modified Device Time #2049

Open WingCH opened 3 weeks ago

WingCH commented 3 weeks ago

Description:

I've encountered an issue when using Proxyman to capture traffic on my iOS device. The problem occurs when the device time is manually changed (e.g., set to two days in the past). Under these conditions, requests to apple.com result in an SSL Handshake Failed error in Proxyman. However, when not using Proxyman, the requests proceed without any issues.

Steps to Reproduce:

Use an iOS device and modify the device time to a previous date (e.g., two days earlier). Set up Proxyman to capture traffic from the iOS device. Make a request to https://www.apple.com.

Expected Result:

The request should be processed successfully without SSL errors.

Actual Result:

The request fails with an SSL Handshake Failed error in Proxyman.

Additional Information:

Screenshot of the issue is attached. Proxyman is configured correctly and works fine when the device time is set to the current date.

Attachments:

6778

Could you please investigate and provide a solution or workaround for this issue?

Thank you!

NghiaTranUIT commented 3 weeks ago

@WingCH can you try using Google Chrome app and visit https://www.google.com ?

WingCH commented 3 weeks ago

SSL Handshake Fail

48440

1B80BD55-0440-487B-867B-9A16DE84F9D7

NghiaTranUIT commented 3 weeks ago

Can you verify your Proxyman Certificate (Not Valid Before & Not Valid After) on your iPhone?

You can find it in Setting app -> General -> VPN & Device Manager -> Tap on your the Proxyman Certificate that you install from Proxyman macOS -> More Details -> Read (Not Valid Before & Not Valid After)

I assume that your current date on iPhone is before the Not Valid Before, so the basic SSL Certificate on your app is failed

WingCH commented 3 weeks ago

It doesn't seem related to (Not Valid Before & Not Valid After). I manually modified the phone's date to 1/6/2024.

9889B227-BA02-4A81-8E06-E27988132748

NghiaTranUIT commented 3 weeks ago

If you don't change the DateTime of your iPhone, Proxyman can successfully capture and decrypt its HTTPS traffic, I believe that the problem is not from Proxyman.

Please note that the iOS app can have multiple steps to verify the SSL Certificate, for example:

To fix it, if you have the source code of your app, you can manually disable all SSL Verification.

WingCH commented 3 weeks ago

Thank you so much for the detailed response!

I wanted to clarify that the SSL issues only happen when I’m using Proxyman. When I don’t use Proxyman, everything works perfectly fine. I tried changing the date and time on my device, which seems to fix the issue temporarily. However, I’m hoping to find a more permanent solution.

Could you please help me understand why changing the date and time on my device helps, but only when using Proxyman?