为什么我在俘虏门户上获得SSL错误? -- samsung-galaxy-s 领域 和 captive-portal 领域 android 相关 的问题

Why am I getting an SSL error on my captive portal?


简体版||繁體版
0
vote

问题

中文

我在无线接入点上设置了一个被封闭的门户。 如果我使用笔记本电脑连接到它,笔记本电脑会弹出一个浏览器,告诉我登录俘虏门户。我可以在笔记本电脑上打开任何浏览器(即Chrome,Firefox),它可以正常工作。

与我的三星Galaxy S8(Android 9),当我连接到无线接入点时,Android会自动检查俘虏门户,并随着每天都有与其他设备相同。由于它检测到它,它也会弹出浏览器并尝试加载登录页面,并在手机上,显示SSL证书错误。其他Android手机没有此错误。

输入图像描述

如果我告诉我的手机尽管没有登录到WiFi,并且在我的手机上打开Chrome,但完全相同的俘虏门户重定向加载没有任何问题。很明显,无论我手机突然出现的内部浏览器,它都不是常规的Chrome浏览器,因为那个工作正常。它也没有看起来不是我的手机的"互联网" 应用程序,因为它也没有显示SSL错误。

是什么浏览器是我的Galaxy S8使用来检测俘虏门户?当其他浏览器和设备没有时,为什么有一个SSL错误?我甚至如何开始调试这个?

注意:我的SSL证书由Letsencrypt生成。它指向 http://ocsp.int-x3.letsencrypt.org 作为服务器验证证书尚未被撤销。我将此域添加到我的俘虏门户的墙壁花园(旁路)列表,以便未重定向到该域的连接,但它没有帮助。

english

I setup a captive portal on a wireless access point. If I use a laptop to connect to it, the laptop pops up a browser telling me to login to the captive portal. I can open any browser on the laptop (IE, Chrome, Firefox) and it works fine.

With my Samsung Galaxy S8 (Android 9), when I connect to the wireless access point, Android automatically checks for captive portals, same as every other device does these days. Since it detects it, it also pops up a browser and tries to load the login page, and on my phone, it shows an SSL cert error. Other Android phones don't have this error.

enter image description here

If I tell my phone to stay connected to the WiFi despite not having logged in, and open Chrome on my phone, the exact same captive portal redirect loads without any issues. It is clear that whatever internal browser my phone is popping up, it's not the regular Chrome browser, as that one works fine. It also doesn't appear to be the "Internet" app my phone shipped with, as that shows no SSL error either.

What browser is my Galaxy S8 using to detect captive portals? Why does it have an SSL error when other browsers and devices don't? How do I even begin to debug this?

Note: My SSL cert was generated by LetsEncrypt. It points to http://ocsp.int-x3.letsencrypt.org as the server for verifying that the cert hasn't been revoked. I added this domain to my captive portal's walled garden (bypass) list, so that connections to that domain are NOT redirected, but it didn't help.

     
         
         

回答列表

1
 
vote
vote
最佳答案
 

经过大量的挖掘,我终于想到了。

首先 - 快速回复:俘虏门户的作业是拦截到Internet的任何请求,并将其重定向到Captive Portal的登录页面。因为我的登录页面是cprewrite.hyperlinkinc.ca,一个远程网站,我不得不将它添加到白名单中。对该域的任何请求实际上都会上网。这有效。

问题是,当用户被重定向到该网页时,网页的HTML引用了一些外部资源。我的页面依赖于某些CSS格式的Bootstrap。我的bootstrap在cprewrite.hyperlinkinc.ca上本地存储,所以这不是问题。不幸的是,当我读取引导(Bootstrap.Min.css)的源代码时,第一行之一读取:

  */@import url("https://fonts.googleapis.com/css?family=Lato:400,700,400italic");   

基本上引导引用其字体的外部资源。这使得Galaxy S8尝试加载资源。因为链接是一个https链接(不是http),所以它需要为fonts.googleapis.com接收SSL证书。由于Fonts.Googleapis.com不在白名单中,我的俘虏门户是将请求重定向到自己的请求,返回自己的SSL证书,而是预期的。

一些浏览器,如常规的谷歌浏览器在Android上,只是静静地失败了。其他,就像这个应用内浏览器一样,大声失败,并显示了SSL警告。

我仍然没有完全确定这个浏览器在检测到被俘虏门户时弹出什么,但问题现在是没有实际意义的,因为我知道为什么它不喜欢我的页面。

 

After a ton of digging, I finally figured it out.

First - a quick recap: The captive portal's job is to intercept any requests to the internet, and redirect it to the captive portal's login page. Because my login page is cprewrite.hyperlinkinc.ca, a remote website, I had to add it to the whitelist. Any requests to that domain will actually get online. This works great.

The problem is that when the user is redirected to that web page, the web page's HTML reference some external resources. My page relied on bootstrap for some css formatting. My bootstrap was stored locally, on cprewrite.hyperlinkinc.ca, so that wasn't a problem. Unfortunately, when I read the source code for bootstrap (bootstrap.min.css), one of the first lines reads:

*/@import url("https://fonts.googleapis.com/css?family=Lato:400,700,400italic"); 

Essentially bootstrap references an external resource for its fonts. This makes the Galaxy S8 try to load the resource. Because the link is an HTTPS link (not HTTP), it is expecting to receive an SSL cert for fonts.googleapis.com. Since fonts.googleapis.com was not in the whitelist, my captive portal was redirecting the request to itself, returning its own SSL certificate, rather then the expected one.

Some browsers, like the regular Google Chrome browser on Android, just fail silently. Others, like this In-App browser, fail loudly, and show an SSL warning.

I'm still not entirely sure what this browser is that pops up when captive portals are detected, but the question is now moot, since I know why it didn't like my page.

 
 

相关问题

1  无法登录“俘虏门户”Wi-Fi网络  ( Cannot logon to a captive portal wi fi network ) 
我无法连接到任何需要登录我假设的任何Wi-Fi网络是俘虏门户。这可能是一年的罚款,但最近已经停止了工作。我在诺基亚6. 上运行Android 8.1.0 我在尝试转到登录后获得以下响应: ...

9  获取Wi-Fi的任何方法只能自动连接到不需要俘虏门户登录的热点?  ( Any way to get wi fi to auto connect only to hotspots that dont require a capti ) 
【P>经常,在我走路和使用互联网时,我将在星巴克走路,我的手机将自动连接到Attwii(这是免费的,但要求我打开浏览器并确认)。我一段时间失去互联网进入,无错误。 我可以关闭自动连接到已知的Wi-Fi网络,但随后我正在摆脱一个有用的带宽节省功能。 如何获得世界上最好的方式,自动连接到不需要俘虏门户的Wi-Fi网络来登...

1  如何获得我目前连接的俘虏门户网站的URL?  ( How to get the captive portals url which i am currently connected to ) 
我刚连接到使用俘虏门户登录页面的WiFi网络。我想查看俘虏门户的URL或IP地址。 我该怎么做? 我已经尝试单击WiFi上的忘记网络以便再次获取登录页面,但它只是连接而不触发登录屏幕,我认为它在正确登录时保存登录信息。 我尝试的第二件事是从系统设置擦除摄像头应用程序的缓存和数据,没有运气。 ...

5  从Android的俘虏门户登录启动浏览器  ( Launch browser from androids captive portal login ) 
我已将raspberry pi配置为wifi热点和web服务器。我想做的是让用户的手机自动打开 web浏览器它们连接到它时。没有互联网连接。 我设置了/ generate_204的重定向,以便在有人连接时出现"登录到WiFi" 通知。当他们点击通知时,它们被带到CaptivePortallogin中的网页。俘虏门户的...

28  WiFi如何在Android中检测到设备是否必须登录或不签名?  ( How does wifi in android detect if the device has to sign in or not ) 
当设备尝试连接到接入点或路由器时,它必须使用消息说出的消息登录 "登录Wi-Fi网络" 。 如何识别设备所需的登录以及它后面的过程是什么? ...

2  CaptivePortalLogin每次尝试加入网络时都会崩溃  ( Captiveportallogin crashes every time i try to join a network ) 
每次尝试加入由网络登录的未加密的WiFi网络(例如在酒店),我都会得到一个弹出的消息,说"Android系统:登录到Wi-Fi网络" ,我点击了此消息,结果是: CaptivePortalLogin has stopped Open app again 我已经尝试过Firefox或Chrome通过访问随机H...

5  俘虏门户检测导致手机在Intranet环境中断开Wi-Fi的连接  ( Captive portal detection causing phones to disconnect from wi fi in intranet env ) 
Hello Android爱好者! 我是游轮上互联网咖啡馆的经理,我们正在困扰一个我不能完全解决的持续问题。 我们在整个船上都有一个无线网络,可用于访问互联网,还包括一个本地Intranet,客人可以查看每日活动计划,检查他们的帐户,并使用免费的内部消息服务。 我们正在运行的问题似乎是俘虏门户检测,并且从我的观...

37  如何禁用俘虏门户检测?如何在棒棒糖中删除Wi-Fi或信号图标上的感叹号?  ( How to disable captive portal detection how to remove exclamation mark on wi fi ) 
当连接到互联网时,系统检查它是否在挂墙花园中,这只是试图连接到谷歌。如果它失败,在Android 5中,WiFi图标或信号图标上会有一个感叹号。 在某些情况下,这很烦人。说,在中国,谷歌被封锁,感叹号将永远存在,这毫无意义。 如何禁用此检查,并使系统假设,连接的WiFi /移动数据是连接的Internet? ...

8  什么Android版本具有俘获WiFi检测?  ( What android versions have captive wifi detection ) 
a 俘虏wi-fi 或俘虏门户是一个wi-fi网络,它将所有网站重定向到页面,通常使用表单登录,输入代码,或接受一些t& cs。 我的 samsung-nexus -10 可以检测我与此行为连接到网络时,并带来通知告诉我,但我的旧 htc-desire 不能。此功能何时介绍? ...

1  登录Wifi网络通知未出现(俘虏门户,nginx)  ( Sign into wifi network notification not appearing captive portal nginx ) 
我正在使用nginx将所有流量重定向到login.com(本地服务器)。我希望将标志进入此WiFi网络消息。我在很长一段时间内搜索,发现Android对Clipes3.Google.com/generate_204进行了请求。如果它重定向或返回除状态代码204的内容应该显示到WiFi网络消息的登录。 但与我的。它不起...




© 2022 it.wenda123.org All Rights Reserved. 问答之家 版权所有