mirror of
https://github.com/ProxymanApp/Proxyman.git
synced 2026-04-25 16:15:55 +03:00
[GH-ISSUE #1917] Proxyman | Android | Internal error with 999 error code | SSL Handshake failed #1908
Labels
No labels
Discussion
Feature request
In Progress...
Plugins
Waiting response
Windows
Windows
bug
duplicate
enhancement
feature
good first issue
iOS
macOS 10.11
question
wontfix
✅ Done
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/Proxyman#1908
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @petrovickristina on GitHub (Jan 20, 2024).
Original GitHub issue: https://github.com/ProxymanApp/Proxyman/issues/1917
Description
I've installed certificates both on MacBook and Android device, and I've turned Web proxy (HTTP) and Secure web proxy (HTTPS) ON.
Can somebody help me with resolving this issue, I don't know what else should I try?
I think that I've read everything that is on the internet util now :D
Thanks in advance!
@NghiaTranUIT commented on GitHub (Jan 21, 2024):
@petrovickristina May I ask: Have you finished the step 5th on this Docs: https://docs.proxyman.io/debug-devices/android-device
New Android API doesn't accept any user certificate until we config it in these files. Otherwise, you will get SSL Error when intercepting HTTPS from your Android app.
@petrovickristina commented on GitHub (Jan 22, 2024):
Hi @NghiaTranUIT Thanks a lot, adding that additional part of a code helped with Internal errors, but now I can’t see all traffic.
I can only see calls for one domain, do you have maybe another proposal what should I try to do for that issue?
@NghiaTranUIT commented on GitHub (Jan 22, 2024):
So it works.
To see all HTTPS traffic, it depends on what network library you're using?
@petrovickristina commented on GitHub (Jan 22, 2024):
@NghiaTranUIT commented on GitHub (Jan 22, 2024):
@petrovickristina it seems Retrofit doesn't accept Proxyman self-signed certificate, even though it's trusted in the Android System.
You have to add some config to tell Retrofit to accept it. Here is a code sample: https://futurestud.io/tutorials/retrofit-2-how-to-trust-unsafe-ssl-certificates-self-signed-expired
or
https://gist.github.com/demixdn/3886de5a71dc2812c8f4d27a248a506b
@VidojeMuric commented on GitHub (Jan 25, 2024):
Hi @NghiaTranUIT , I will also jump in since we are both on a same project :)
I have noticed that we have problem communicating with Firebase Firestore when we turn on Proxyman. We are receiving a message:
Stream closed with status: Status{code=UNAVAILABLE, description=null, cause=java.lang.RuntimeException: TLS ALPN negotiation failed with protocols: [h2]
We have tried all suggestions mentioned above, but nothing helps. Do you have any additional suggestion?
@NghiaTranUIT commented on GitHub (Jan 25, 2024):
I suggest not using the SSL Proxying on the Firebase domains, to make it works.
Firebase only supports HTTP/2 (h2) that Proxyman doesn't support (only HTTP/1.1)
@NghiaTranUIT commented on GitHub (Jan 25, 2024):
@VidojeMuric You can open the Tool menu -> SSL Proxying List -> remove the Firebase domains.
By doing it, Proxyman just proxies these data without intercepting it.
@VidojeMuric commented on GitHub (Jan 25, 2024):
Hi @NghiaTranUIT , thanks for a quick reply and help! In SSL Proxying list we didn't have Firebase domains. Only domains of our app. And the error is the same
[WatchStream]: (7208c20) Stream closed with status: Status{code=UNAVAILABLE, description=null, cause=java.lang.RuntimeException: TLS ALPN negotiation failed with protocols: [h2]
at io.grpc.okhttp.OkHttpProtocolNegotiator.negotiate
@jsonITP commented on GitHub (Mar 7, 2024):
Hi @NghiaTranUIT, I'm experiencing the same issue.

We've added both xml files with the exception of
<certificates src="user" />in<base-config cleartextTrafficPermitted="true">This is also React-native with OKhttp as network lib.
All certificates should be correct, but when i'm using proxy with Android I keep getting:
@NghiaTranUIT commented on GitHub (Mar 7, 2024):
From what I google, OkHTTP doesn't use the certificate in your system Android. You have to accept it manually. Here is the tutorial on how to accept a self-signed certificate: https://www.baeldung.com/okhttp-self-signed-cert
If it's okay, then, Proxyman can decrypt your HTTPS data.
Sample Code: https://gist.github.com/rybalkinsd/940a35ccefb9849c887ccf32d3be744b
@bitcrumb commented on GitHub (Mar 19, 2024):
@NghiaTranUIT Why is there a
<debug-overrides>in the network config when the types of certificates trusted (user & system) in the<base-config>are exactly the same?Shouldn't the
<base-config>exclude user certificates by default for security reasons?@iamyorchdev commented on GitHub (Nov 25, 2025):
I was getting the same errors (not only for New Relic but all requests from my Android app, screenshot is just for reference).
Turns out I accidentally enabled the Use External Proxy option by pressing Cmd + Opt + E in Mac OS.
After disabling it, everything started working again.