Xndroid icon indicating copy to clipboard operation
Xndroid copied to clipboard

证书不被信任

Open gzhuotao opened this issue 7 years ago • 18 comments

手机:华为荣耀8 OS:Android 7.0 Xndroid 版本:1.1.0

证书已经成功导入,查看受信任的凭据中也有GoAgent的证书,但在手机自带的浏览器中打开google.com,出现提示“证书来自不可信任的授权中心,是否继续”,如果点确定,是可以正常打开网页,但关闭浏览器后再打开会重新提示,而且Google Play也是无法连接,显示“未连接到互联网”。

自己在网上查了一下,此问题应该是Android 7.0 不再信任用户自己导入的根证书导致的,有没有人遇到相似的问题?有没有解决的办法?

gzhuotao avatar Dec 04 '17 02:12 gzhuotao

好吧,看来你只能使用内置的LightningBrowser,或能关闭证书警告的浏览器

XndroidDev avatar Dec 04 '17 02:12 XndroidDev

android 7的证书问题很麻烦,好像需要应用自己添加允许用户证书,或者root的机子把证书(注意格式)移到/system/etc/security/cacerts下; 但是,我反向过browser,把语句添加后,日志中不再出现证书错误,但依然无法播放twitter和facebook的视频,下载是可以的(把证书移到系统目录也是这样的效果);即使证书错误,一些忽略证书的下载器也是可以下载视频的;图片倒都是没问题; 况且,大多app反向后可能会遇到签名验证啥的,好像twitter啥的app有特殊方法反向添加,没仔细研究; 参考添加语句: https://developer.android.com/training/articles/security-config.html?hl=zh-cn

GLingDroid avatar Dec 04 '17 12:12 GLingDroid

@GLingDroid 那系统自带浏览器和常见浏览器是否信任导入的证书呢?

XndroidDev avatar Dec 04 '17 15:12 XndroidDev

android 7开始,app默认不信任用户导入的证书,只信任系统证书; 系统自带浏览器和常见浏览器应该都不会去适配这种改变,可能firefox那种独立使用证书导入的没问题; 照理说,走vpn的话应该没有证书问题的吧?比如ssr 但像你这个vpn代理里又套了一个gae代理,这里面证书的逻辑链不知道有没有问题,比如需要fqrouter也要做用户证书支持。

GLingDroid avatar Dec 05 '17 01:12 GLingDroid

恩 感谢

XndroidDev avatar Dec 05 '17 04:12 XndroidDev

使用内置的LightningBrowser,打不开google.com,网页无法加载,因为:net::ERR_CONTENT_DECODING_FAILED 但twitter和facebook是可以打开的。

gzhuotao avatar Dec 08 '17 01:12 gzhuotao

@gzhuotao
https://github.com/XX-net/XX-Net/issues/8852#issuecomment-350405791 https://github.com/XndroidDev/Xndroid/issues/5

XndroidDev avatar Dec 09 '17 10:12 XndroidDev

android 7以上系统需root后使用这款软件导入系统证书 https://apkpure.com/root-certificate-manager-root/net.jolivier.cert.Importer @xndroiddev 如果检测到api25 , 请取消证书自动导入步骤

ghost avatar Dec 10 '17 05:12 ghost

@blob8964 好的.

XndroidDev avatar Dec 10 '17 10:12 XndroidDev

targetSdkVersion 26

把26改低点,比如22,重新编译打包的app有没有可能不受系统7.0以上的显示

iikk avatar Dec 15 '17 13:12 iikk

默认情况下,来自所有应用的安全连接(使用 TLS 和 HTTPS 之类的协议)均信任预装的系统 CA,而面向 Android 6.0(API 级别 23)及更低版本的应用默认情况下还会信任用户添加的 CA 存储。应用可以使用 base-config(应用范围的自定义)或 domain-config (按域自定义)自定义自己的连接。

@iik 应该和是谁安装的证书没有关系. 比如说 如果 某个浏览器APP target API level 是 26, 就不接受用户证书, target API level 是 23 就默认接受, 至于是通过谁安装的并不重要

XndroidDev avatar Dec 15 '17 16:12 XndroidDev

@XndroidDev S8 自带的浏览器可以正常使用 安装的火狐不行

xuwanglin avatar Jan 24 '18 02:01 xuwanglin

@XndroidDev S8 应用都不行

xuwanglin avatar Jan 24 '18 02:01 xuwanglin

@xuwanglin 火狐需要在浏览器中安装证书, 在火狐中访问http://127.0.0.1:8085, 点击证书旁的 下载 即可安装. 有时间折腾的话,可以试试把手机root, 安装为系统证书后, 一些应用应该可以使用

XndroidDev avatar Jan 24 '18 03:01 XndroidDev

@XndroidDev 这个方法很好 谢谢

klcb2010 avatar Feb 28 '18 03:02 klcb2010

我刚才也遇到了这个问题,LineageOS 系统,app中证书导入失败,点击那个下载按钮也点不动。浏览器访问:http://127.0.0.1:8085 在这里下载那个证书,然后用Root 管理器将证书移动到/system/etc/security/cacerts下,再次在app中导入,导入成功。Google Play、Youtube可用,Twitter、Instagram用不了,github不是私密链接,Google搜索提示offline,用不了。

ShinMin-a avatar Aug 21 '18 16:08 ShinMin-a

华为荣耀7i / Android 6.01 已 root,无法改变 /system/etc/security/cacerts 的只读属性,导入为系统证书失败,只能导入为用户证书。https://github.com/XndroidDev/Xndroid/issues/9#issuecomment-350525543 貌似也无效。

AnyWAT avatar Feb 21 '19 08:02 AnyWAT

好的

xwtxwy avatar Mar 19 '19 09:03 xwtxwy