ERR_CERT_AUTHORITY_INVALID when using Charles with android(Kitkat) - android

I am trying to perform a M-I-T-M using Charles proxy with my android(Kitkat) device, i have installed charles Certificate both in my Desktop and as well as in my mobile phone. I have also set proxy manual with ip of my Desktop and using port 8888 which is the default port to use charles, i have also added my mobile ip in my Charles with enabling SSL proxy settings. Now when i am trying to open any website in my desktop then everything is working fine, but the problem happening is when i am trying to open any Https website in my mobile then i am getting ERR_CERT_AUTHORITY_INVALID. I have seen many solutions and none of them are working for me.
I have also seen this post SSL Proxy/Charles and Android trouble and i have done the same thing which is mentioend in the answer but still i am facing this problem.
Anyone Please help me why this error is happening.

Related

Charles Proxy blocking SSL traffic on Android

Been using Charles Proxy for years now but recently I've been having issues setting up my Android device.
Certificates have been installed on the Android device. I've confirmed they are in fact listed as trusted certificates in my certificates list. Everything is setup correctly, but SSL traffic continues to be blocked.
I've tried reaching out for support, but they don't ever respond.
Has anybody had this issue before?
I was having all my traffic blocked. The issue was that "Allow list" (in Tools menu) was enabled, so only traffic to allowed locations were going through. After disabling that, issue got fixed.
Everything is setup correctly, but SSL traffic continues to be blocked.
Sometimes I used to see red cross on SSL requests coming from Android. I was unable to read the content. It started working fine for me after I setup the SSP Proxy Settings option. I checked the Enable SSL Proxying option as shown in the image and added the wildcard URL's that I want to filter. Eg: *.your-server-url.com
Update:
Also I don't think you can do it in release build of your application.
And for Android N and above there have been these changes you'll need to include in your project for it to work: https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
Hope this helps a bit.

connecting to the loop back (10.0.2.2) on an android / xamarin / VS2015 emulator setup

this old story again.
I cannot get my emulator to speak with my local windows development machine. I know that I need to use 10.0.2.2 as the IP to connect to 127.0.0.1 on my development machine. I have had the thing working one week ago but since then, several reboot and some tinkering later it will not connect.
As simple as putting 10.0.2.2 in the browser (on the emulator) fails. I can connect to the public internet fine in the browser. the BBC and Google work.
It's not a firewall issue as the response is not "actively refused" and I turned it off to no avail.
I am not systems expert and have little interest in systems stuff but I suspect there is "proxy" stuff involved. I have removed the proxy settings which were on my windows machine. I use fiddler a lot and I understand that it affects proxy settings ??
Where do I go now. I fire up an emulator using VS 2015 and it works fine. I can use the browser for public sites. I cannot connect to 10.0.2.2. It just times out.
How do I proceed please clever people?
I find it easier to use fiddler as reverse proxy which makes it easier to access localhost from Android easier: Use Fiddler as a Reverse Proxy
After that you will be able to connect to localhost:8888 and fiddler will redirect request to your local server.

Visual Studio 2015 CTP5 Android Emulator loopback to localhost?

I am using VS 2013 to connect with the new VS2015 Android Emulator. This seems to work now and I can debug, set breakpoints etc which is all fine. (Now, I would use VS2015 but it won't deploy properly -never mind).
I am also developing the server app on my machine and using Fiddler as an http debug aid.. not an uncommon situation I am sure.
The server is running (also under debug in another instance of VS 2013) using IIS Express and I have added bindings to the applicationhost.config so the IISExpress server is visible on my LAN from other PC's and I've checked it is visible.
Try as I might I can not seem to get the Emulator to send the http requests back to my computer.
My javascript uses a servicebase to hold the url:
var serviceBase = 'http://192.168.2.4:64963/'; //'http://169.254.220.177:64963/'; //'http://10.0.2.2:64963/'; //'http://localhost:64963/';
The commented ones show the ones I have tried. None of these works.. the first is the IP of my machine on the LAN, the rest are various ones I have picked up here or the Android dev site.. I have also tried:
http://mymachinename:64963
Because I am bringing both web AND API services from this URL I have also tried a chrome browser on my real android phone (over wifi on my LAN) and this can't get to my dev machine either (where my other pc's can). So I get that it probably can't resolve the names? But really not sure where to go next? I wondered about the Hosts file on my PC but not sure if I can/should set an IP address as a host name? .. any pointers? Thanks, Brett
169.254.80.80 is the localhost loopback.
By going to Additional Tools in the VS emulator for Android (click the >> button on the right hand side) and selecting the Network tab, you will get all the information about the network connectivity.
For the localhost loopback, use the address listed under the Desktop Adapter #2. Desktop Adapter #1 should work as well, which is the IP address of your machine.
I am answering this because I have seen a lot of comments/questions about this topic and need to include some bits that it is hard to fit in the comments.. and I have solved it.
First the solution.. was to delete/replace the vsemu.vhd and vsemu.sdcard.vhd for the emulator with safe copies. This was because in my efforts to fix the problem I assume I had changed some setting in the emulator phone data. Sadly I am not sure what.
However, and this checklist may be useful to someone, before this I was led to it by the fact that because I had web services as well as API from my server URL I was able to test webpage access. This worked on pcs but failed on wifi connected android devices on my network with pc names.. as mentioned in my original question. But it wouldn't work with a numeric IP address either.
I had already added the numeric IP to the applicationhosts.config file of IISExpress, but what I hadn't done, because I thought its on the machine its referring to, was execute the
netsh http add urlacl url=http://192.168.2.1:94693/ user=everyone
command to let it all through.
Once I had done this, I was able to connect using the IP address from a phone, and this led me to discover that the Emulator had obviously got some form of problem. Replacing the VHD's fixed this and I am now communicating.
In case anyone else has this issue using the following IP's worked for me:
IP of the machine
169.254.80.80
However, do remember that VS Android emulator is running in a Hyper-v VM,
So I had to punch a hole in my firewall to allow for my application port to be reached by the emulator.
If your using Web API with visual studio 2015 and VS Android emulator this link helped me out a lot
Use 10.0.2.2, This is the loopback from emulator to your host machine.
See link:
http://developer.android.com/tools/devices/emulator.html
I was having the same issue, but none of the above answers were useful for me.
My BackEnd is a PHP SlimFramework Rest Api.
I decided to change the IP in the auto start of the Slim (was localhost:7888), I tried this: php -S 192.168.43.20:7888, and everything was working fine after I configure the calls to that ip.
I hope this may help someone...
In generic the IP you must consider is the IP of the network you are using/allocated to run the android emulator.
Very raw/rude method of finding it is by going to settings (gear symbol on right panel of emulator, not the one inside) and look for ip address. . Or by opening the ADB Logging window and it's on the top left corner.
Now in command prompt type ipconfig and match the first 3 numbers of IP and that's the network your localhost loopback.
Because in many cases we will have more than one ethernets or virtualbox host only networks are running.
Happy Coding!!

Setting proxy to Android Emulator

I'm having a problem to surf internet on my Emulator, wich is targeting Google API8.I followed all the instructions I have read, setting the proxy in MobileNetworks-->APN--->....,etc, and doesn`t work. If I remove the proxy, the browser navigates locally, and if I have the proxy configured it doesn't even navigate locally.
I tested the same coonfiguration on an emulator targeting API16 and did work!!!!(local and on the Internet), so please how can I solve this.Any help will be appreciated.
PD: I tested using -dns-server x.x.x.x too and happens the same.
Emulator uses the internet connection from the host computer where it's installed.
If the host computer doesn't need any special configuration to access internet (proxy, etc.), then your emulator doesn't need it either.
Only if your computer needs a proxy configuration (or other), you will need to replicate it in the emulator.
Regards.

Not able to connect secure sites ("https:") from android emulator

I am working on a android application, which is accessing a secured (https://) web service for some data. But I am facing some problem while testing the application in AVD emulator. The problem is that I am not been able to access the "https:" site neither from my application nor from the emulator browser. While I am trying to connect the site (in fact any secured website ) from the browser it's showing the error message as "Data connectivity problem.
A secure connection could not be established.". Though I can access the same websites from my window's web browsers.
According to my analysis the problem is with the privilege setting of the emulator. I am running the application on a corporate (my office) machine, where I don't have the admin rights (but I am a power user) and the machine is also behind the proxy. But as mentioned before I can access those secure sites from the machine's browsers, the only problem seems to be with the emulator accessibility.
I tried to test the same code from my personal laptop and as expected it's working perfectly.
Can somebody please help me out to find out the solution for this? How can I access a secured site from the emulator? FYI I am using eclipse Helios & Android 2.1
Please let me know if you need any more information from my side.

Categories

Resources