My android app doesn't work on university wifi - networking

I've developed an Android app relying on a REST server. The app works great on mobile network and also on my WiFi.
But when I try it at the university, it cannot connect to the server. The connection is an https on the standards ports (which aren't blocked). If I try to load the server URL in chrome it can reach the server.
I don't think it's a code related issue because some other android apps don't work here either. I think it's a firewall rule but what?
When I curl the the address of the server (the same as the android app), it returns correctly. Is it an user-agent filter or something like that ?
I don't know if it can be the cause but I self-signed my ssl certificate. Can it be related ?
What can cause this issue ? Is it a solution on my side ?

Related

firebasestorage.googleapis.com bad request

I noticed that my uploaded files became unavailable yesterday morning. I didn't change the settings.
It doesn't work in browsers and mobile apps, but it is wired because it works in different regions.
I tried to run the curl -I https://firebasestorage.googleapis.com/v0/b/bucket... but I just got the HTTP/2 400 error and nothing else. When I link an URL for example into the Slack chat, then the URL works but when I try to open it from a browser or in a mobile application it doesn't work.
I got this message.
UPDATE: It works from VPN and 4g but doesn't work on wifi. This is totally weird.
Thanks for the help.
This issue is caused because your ISP is blocking connections to Firebase. There other user who have reported the same issue with Hungarian Telekom mobile (¿is that the ISP you are using?). The solution is to contact the ISP and tell them to allow those connections. This also explains why using a VPN works.

Developing webapp on mobile - https security problems

I am developing web-app on mobile which is using user camera & microphone.
When I want to run it on mobile in same network. I am running server on --host 0.0.0.0 to be able to run it on mobile.
The problem is that my dev server is running on http protocol, and mobile browser is not allowing getUserMedia in that case.
What is good solution to solve it?
I know I can set flags on my mobile browser to allow insecure connection, but it is also my private phone, so I don't want to go this path.
You wrote
dev server is running on http protocol, and mobile browser is not allowing getUserMedia in that case.
You Can't Do That™. You must use https to serve your web pages and Javascript for this kind of application, or all browsers deny access to getUserMedia() and other similar browser-resident APIs.
True for desktop and mobile browsers.
Because cybercreeps.

Unable to connect to webservice using Chrome Advanced REST Client but able to connect through chrome browser

I need to connect to a third party webservice. When I hit the link directly in the chrome browser, I am able to connect to it and I get a response. But when I tried the same using Advanced REST Client app of chrome, I get a message as 'The service's server DNS address could not be found.'
Also, when I tried to connect it via my JAVA code, using spring's rest template, am getting an Unknown host exception. What could be the reason that am able to connect via browser but not otherwise?
Thanks in advance.
Maybe it's a problem with your system's DNS settings? I'm not sure how Chrome handles queries to DNS when primary DNS did not found the record. If it uses Google DNS' then Chrome may connect to the service but other applications can't.
To test it set your DNS to 8.8.8.8 and check if apps start working.
From browser it's working properly but not from rest client or application, then i guess the problem with the proxy.
if you are using your office network, then this issue will come.
Try hitting the webservice by connecting to personal network.
i have faced similar issue last week, from browser and postman i'm able to hit the web service but not from the application.
Ones i connected with my personal then it started working.
Hope it helps.

Meteor iOS app issue with AirWatch VPN Tunneling

We have developed a mobile app using Meteor+Ionic2. We use our internal NodeJS server which is not in internet zone. We got the app deployed to our enterprise app store which enables AirWatch VPN tunneling to get the access to server in intranet zone.
Everything works great when tested with iOS device level using "F5 Access" VPN when deployed using Xcode or enterprise app store with NO VPN tunneling . But when download the app from our enterprise app store which does per-app VPN using AirWatch VPN Tunneling, iOS app gets stuck at the splash screen. It is not seems to call any client side or server side code of Meteor+Ionic2.
When redeploying it using development distribution, It seems to be stays at about:blank and not going to localhost and getting "Failed to load resource" error in about:blank.
The same AirWatch VPN Tunneling works great in Android. This issue seems to be happening only in iOS. I checked device level logs and also AirWatch VPN tunnel logs which donesn't report any errors.
I'm not sure whether Meteor+Ionic2 supports AirWatch VPN Tunneling for iOS as none of framework codes get called. Is there anyway to debug the enterprise distributed app? Is VPN-Tunneling not supported in iOS app development using Meteor?
Thanks,
Annadurai.
The root cause of the issue seems to be AirWatch config which causes the localhost to be appended with domain name like localhost.mycompany.com. As AirWatch couldn't fix this issue, we dropped plan of using AirWatch VPN tunneling.

Connect to self-signed HTTPS web services from Flex

In my project I need to connect to an intra-net web service but we need SSL connection between the two machines.
Because this is an intra-net site the certificate of the web service might be a self-signed certificate.
The web service and the web page that loads my Flex application resides on the same web server (tomcat) so when I load the web page of the application with HTTPS I been asked to confirm the certificate, I confirm it but this confirmation does not apply on the Flex application (on Internet Explorer and Firefox).
I tried Google's Chrome and it actually asked me twice for confirmation, one for the web page and one for the connection to the web service so it worked great.
Is there a way to tell Flash player to accept also self-signed certificates of is it entirely concern the browser and Adobe guys can't do nothing about it?
In other words, is there a way to connect to a self-signed certificates HTTPS web services from Adobe Flex???
Thanks.
When I put on my security hat the answer would be I hope not. I don't want browser plugins to bypass my browser security settings. I'd consider that a vulnerability.
There might be a way for standalone Air applications, but in browser Flash should honor browser settings.
In your company, you could create your own root CA, add its certificate to all machines that will access the intranet, and then have the CA issue your web service a certificate. The certificate will no longer be self-signed. The two main issues are: (1) managing the private key of your CA, (2) distributing the CA's root certificate to client PCs.
You need to download the cert and install it on both IE and Firefox.
To install a cert on IE:
http://www.markwilson.co.uk/blog/2008/11/trusting-a-self-signed-certificate-in-windows.htm
To install a cert on FF:
Go to Tools->Options and click on the Encryption tab. Click "View Certificates", then "Import".
In my experience, the cert has to be either verified or installed in the browser in order to get Flash to work properly. The cert also needs to have a valid hostname, but you can just edit your client's hostfile if you need to do this for testing.
Well, the flash player should just use the browser to make the connection and be done with it. We have a similar setup here. We use self-made certs, and communicate with the an AMF channel over HTTPS. My guess is though that our setup is different in that we load the flash application itself over an HTTPS channel, so it's talking from HTTPS to the same HTTPS server. Maybe you could try that? This is the setup for our Tomcat server:
Tomcat Server/Client Self-Signed SSL Certificate

Resources