解决「短信转发器」提示「证书验证失败」的完整指南(Root+ADB 方案)

解决「短信转发器」提示「证书验证失败」的完整指南(Root+ADB 方案)

发布日期: 2025-10-14
标签: Android, ADB, 证书, 短信转发, Root, SmsForwarder, Fiddler, Charles, mitmproxy
分类: 实战教程

适用场景:

  • 使用 SmsForwarder 转发短信时,日志一直报「SSLHandshakeException / 证书验证失败
  • 手机系统 Android 4.x(已 Root),无法安装用户 CA 证书到系统目录
  • 愿意动手敲几行 ADB 命令,一次性根治问题

🚀 引言:告别证书验证失败!

如果你在使用强大的 SmsForwarder 应用时,不幸遭遇了恼人的「SSLHandshakeException / 证书验证失败」错误,特别是在老旧的 Android 4.x 设备上,那么恭喜你,这篇教程将为你提供一个彻底的解决方案!我们将利用 Root 权限和 ADB 命令,将抓包工具的 CA 证书提升为系统级信任证书,让你的短信转发器重获新生。

🎯 思路一句话:系统级信任,一劳永逸!

核心思路非常简单:把你的抓包工具(Fiddler/Charles/mitmproxy 等)的 CA 证书制作成 系统级信任证书,并将其放置到 Android 设备的 /system/etc/security/cacerts/ 目录下。这样,Android 4.x 系统就不会再「嫌弃」这些证书,HTTPS 拦截就能成功,SmsForwarder 自然也就不再报「证书验证失败」了。

🛠️ 1. 准备工作(3 个下载)

在开始之前,请确保你已经下载好以下文件:

文件用途提示
Android SDK Platform-Tools提供 adb / fastboot 命令官方最新版即可
已制作好的系统证书目录包含抓包工具(Fiddler/Charles/mitmproxy)所需的 <hash>.0 系统证书解压后得到 cacerts/ 文件夹
SmsForwarder开源短信转发神器确保已安装,并遇到 HTTPS 报错

⚙️ 2. 操作步骤(复制粘贴即可)

请按照以下步骤,一步步完成证书的替换。确保手机已连接电脑并开启 USB 调试。

2.1 解锁 System 分区(获得读写权限)

# 手机连接电脑,打开 USB 调试
adb devices

# 进入 root 壳(部分设备可能需要先 adb shell,再 su)
adb root
adb shell

# 解锁 /system 分区,使其可读写
mount -o remount,rw /system

2.2 备份原厂证书(可选但强烈建议!)

为了安全起见,我们强烈建议你备份当前的系统证书,以防万一。

# 备份原有的 cacerts 目录到 /sdcard
cp -r /system/etc/security/cacerts /sdcard/cacerts_backup

2.3 一键替换证书目录

现在,我们将把下载好的包含抓包证书的 cacerts 文件夹推送到手机,并替换掉系统原有的证书目录。

# 先退出当前的 adb shell
exit

# 将新的 cacerts 目录推送到手机的 /sdcard 目录
adb push cacerts /sdcard/

# 重新进入 adb shell,并切换到 root 用户
adb shell
su

# 删除旧的证书目录
rm -rf /system/etc/security/cacerts

# 将 /sdcard/ 下的新证书目录移动到 /system/etc/security/
mv /sdcard/cacerts /system/etc/security/cacerts

# 修复新证书目录及内部文件的权限
chmod 755 /system/etc/security/cacerts
chmod 644 /system/etc/security/cacerts/*

2.4 重新加锁 & 重启设备

完成证书替换后,重新加锁 /system 分区并重启手机,让更改生效。

# 重新加锁 /system 分区,使其只读
mount -o remount,ro /system

# 重启手机
reboot

✅ 3. 验证成果

手机重启后,进入 设置 → 安全 → 受信任凭据 → 系统

如果你能看到「DO_NOT_TRUST_FiddlerRoot」、「mitmproxy」、「Charles Proxy」等字样,那就表示证书已经成功生效了!

现在,打开 SmsForwarder,尝试测试 WebHook 或邮件通道。你会发现日志中不再出现「证书验证失败」,HTTPS 抓包也能正常解密,一切恢复正常!

🤔 4. 常见问题速查 (FAQ)

现象解决方案
Read-only file system忘记执行 mount -o remount,rw /system
Cross-device link不要跨分区移动。建议先 cp -rrm -rf,或者直接在本分区 mv
证书不显示确保证书文件名是 <hash>.0 格式(本文提供的下载包已处理好)
重启后证书消失部分机型开启了 dm-verity,需要刷入已关闭验证的 boot.img,或每次重启后手动挂载

👨‍💻 5. 懒人脚本(可选)

你可以将步骤 2.1 到 2.4 的核心命令保存为一个脚本(例如 fix-cert.sh),方便一键执行。

#!/system/bin/sh

# 挂载为可读写
mount -o remount,rw /system

# 备份(可选)
# cp -r /system/etc/security/cacerts /sdcard/cacerts_backup_$(date +%Y%m%d)

# 替换
rm -rf /system/etc/security/cacerts
cp -r /sdcard/cacerts /system/etc/security/cacerts

# 修复权限
chmod 755 /system/etc/security/cacerts
chmod 644 /system/etc/security/cacerts/*

# 挂载为只读并重启
mount -o remount,ro /system
reboot

使用方法:将脚本推送到手机,然后在 adb shell 中执行 sh /sdcard/fix-cert.sh

🏁 6. 结语

Android 4.x 虽然已经停止官方更新,但其系统证书过期或缺失的问题会导致大量依赖 HTTPS 的现代应用无法正常工作。通过上述 Root+ADB 替换系统证书的方案,我们可以轻松让这些老旧设备“重获新生”,继续发挥余热。

希望这篇教程能帮助你解决 SmsForwarder 的证书问题,让它能稳定地将短信转发到钉钉、飞书、Telegram 等 HTTPS 通道。如有任何疑问,欢迎在评论区留言,或到 SmsForwarder GitHub 提 Issue 一起交流!

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇