[GH-ISSUE #1025] [Feature] 支持 R3 的证书,以支持android 5.1的旧IOT设备 #702

Closed
opened 2026-03-03 01:05:21 +03:00 by kerem · 7 comments
Owner

Originally created by @aohanhongzhi on GitHub (Nov 3, 2025).
Original GitHub issue: https://github.com/certimate-go/certimate/issues/1025

功能描述 / Description

最近拿到一个android 5.1的IOT面板设备,最新的R13证书无法将校验了。需要使用 R3证书。

请求动机 / Motivation

以支持旧IOT设备,维护。

目前设备访问后端接口报错:

16:52:53.792  1043-1043  GetBindDeviceAutoCode         com.wit.smartservice                  D  ###onFailure:java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

其他 / Miscellaneous

Android 5.1 不信任 ISRG Root X1,这是 Let's Encrypt 从 2021 年开始默认使用的根证书。

Certimate 是一个基于 Web UI 的 ACME 客户端(通常运行在 Docker 中),它支持 Let’s Encrypt 等 ACME 服务。
要使用 Certimate 申请由 R3 中间证书签发、兼容 Android 5.1 的证书,关键是 指定 preferred-chain: "DST Root CA X3"。

贡献 / Contribution

  • 我乐意为此贡献 PR! / I am interested in contributing a PR for this!
Originally created by @aohanhongzhi on GitHub (Nov 3, 2025). Original GitHub issue: https://github.com/certimate-go/certimate/issues/1025 ### 功能描述 / Description 最近拿到一个android 5.1的IOT面板设备,最新的R13证书无法将校验了。需要使用 R3证书。 ### 请求动机 / Motivation 以支持旧IOT设备,维护。 目前设备访问后端接口报错: ```java 16:52:53.792 1043-1043 GetBindDeviceAutoCode com.wit.smartservice D ###onFailure:java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. ``` ### 其他 / Miscellaneous Android 5.1 不信任 ISRG Root X1,这是 Let's Encrypt 从 2021 年开始默认使用的根证书。 Certimate 是一个基于 Web UI 的 ACME 客户端(通常运行在 Docker 中),它支持 Let’s Encrypt 等 ACME 服务。 要使用 Certimate 申请由 R3 中间证书签发、兼容 Android 5.1 的证书,关键是 指定 preferred-chain: "DST Root CA X3"。 ### 贡献 / Contribution - [ ] 我乐意为此贡献 PR! / I am interested in contributing a PR for this!
kerem 2026-03-03 01:05:21 +03:00
Author
Owner

@imlonghao commented on GitHub (Nov 4, 2025):

DST Root CA X3 签发的 ISRG Root X1 已于 2024-09-30 过期
https://crt.sh/?id=3958242236

<!-- gh-comment-id:3485950588 --> @imlonghao commented on GitHub (Nov 4, 2025): `DST Root CA X3` 签发的 `ISRG Root X1` 已于 2024-09-30 过期 https://crt.sh/?id=3958242236
Author
Owner

@aohanhongzhi commented on GitHub (Nov 4, 2025):

DST Root CA X3 签发的 ISRG Root X1 已于 2024-09-30 过期 https://crt.sh/?id=3958242236

但是Android 5.1的 IOT设备还在跑呢,有没有办法解决这个问题?

<!-- gh-comment-id:3486016103 --> @aohanhongzhi commented on GitHub (Nov 4, 2025): > `DST Root CA X3` 签发的 `ISRG Root X1` 已于 2024-09-30 过期 https://crt.sh/?id=3958242236 但是Android 5.1的 IOT设备还在跑呢,有没有办法解决这个问题?
Author
Owner

@aohanhongzhi commented on GitHub (Nov 4, 2025):

我自己手动使用

~/.acme.sh/acme.sh --issue -d api.bosch-smartlife.com   --preferred-chain "DST Root CA X3" --dns dns_ali   --debug

生成了证书,就可以正常被Android 5.1 系统识别了。

Image

certimate 生成的,就无法被识别。

Image

重点应该是看如何支持:

 --preferred-chain "DST Root CA X3"
<!-- gh-comment-id:3486126285 --> @aohanhongzhi commented on GitHub (Nov 4, 2025): 我自己手动使用 ```shell ~/.acme.sh/acme.sh --issue -d api.bosch-smartlife.com --preferred-chain "DST Root CA X3" --dns dns_ali --debug ``` 生成了证书,就可以正常被Android 5.1 系统识别了。 <img width="435" height="528" alt="Image" src="https://github.com/user-attachments/assets/86f4ad19-b534-4ccf-830e-c237e7efc1b0" /> certimate 生成的,就无法被识别。 <img width="595" height="541" alt="Image" src="https://github.com/user-attachments/assets/0cb41e39-4a03-40b2-ad04-20411ca8a9bc" /> 重点应该是看如何支持: ``` --preferred-chain "DST Root CA X3" ```
Author
Owner

@imlonghao commented on GitHub (Nov 4, 2025):

但是Android 5.1的 IOT设备还在跑呢,有没有办法解决这个问题?

Let's Encrypt 的话无解,他们最低支持的是 Android >= 7.1.1

https://letsencrypt.org/zh-cn/docs/certificate-compatibility/

重点应该是看如何支持 --preferred-chain "DST Root CA X3"

并非如此,第一张图的证书颁发机构是 ZeroSSL,你可以通过 certimate 更换一个证书颁发机构实现

<!-- gh-comment-id:3486554019 --> @imlonghao commented on GitHub (Nov 4, 2025): > 但是Android 5.1的 IOT设备还在跑呢,有没有办法解决这个问题? Let's Encrypt 的话无解,他们最低支持的是 Android >= 7.1.1 https://letsencrypt.org/zh-cn/docs/certificate-compatibility/ > 重点应该是看如何支持 `--preferred-chain "DST Root CA X3"` 并非如此,第一张图的证书颁发机构是 ZeroSSL,你可以通过 certimate 更换一个证书颁发机构实现
Author
Owner

@aohanhongzhi commented on GitHub (Nov 4, 2025):

但是Android 5.1的 IOT设备还在跑呢,有没有办法解决这个问题?

Let's Encrypt 的话无解,他们最低支持的是 Android >= 7.1.1

https://letsencrypt.org/zh-cn/docs/certificate-compatibility/

重点应该是看如何支持 --preferred-chain "DST Root CA X3"

并非如此,第一张图的证书颁发机构是 ZeroSSL,你可以通过 certimate 更换一个证书颁发机构实现

我换了 ZeroSSL就报错了。

Image Image
<!-- gh-comment-id:3486594598 --> @aohanhongzhi commented on GitHub (Nov 4, 2025): > > 但是Android 5.1的 IOT设备还在跑呢,有没有办法解决这个问题? > > Let's Encrypt 的话无解,他们最低支持的是 Android >= 7.1.1 > > https://letsencrypt.org/zh-cn/docs/certificate-compatibility/ > > > 重点应该是看如何支持 `--preferred-chain "DST Root CA X3"` > > 并非如此,第一张图的证书颁发机构是 ZeroSSL,你可以通过 certimate 更换一个证书颁发机构实现 我换了 ZeroSSL就报错了。 <img width="1639" height="2205" alt="Image" src="https://github.com/user-attachments/assets/58838847-b302-4714-8684-ae6efa952a09" /> <img width="1489" height="1632" alt="Image" src="https://github.com/user-attachments/assets/5527aadd-bff1-4e94-a514-4ca0ac2b2616" />
Author
Owner

@imlonghao commented on GitHub (Nov 4, 2025):

从截图来看你的证书颁发机构授权为空

<!-- gh-comment-id:3486779121 --> @imlonghao commented on GitHub (Nov 4, 2025): 从截图来看你的证书颁发机构授权为空
Author
Owner

@aohanhongzhi commented on GitHub (Nov 6, 2025):

从截图来看你的证书颁发机构授权为空

确实是的,搞定了。但是等我验证这个颁发的证书是否能被Android 5.1认可看看。

<!-- gh-comment-id:3494432902 --> @aohanhongzhi commented on GitHub (Nov 6, 2025): > 从截图来看你的证书颁发机构授权为空 确实是的,搞定了。但是等我验证这个颁发的证书是否能被Android 5.1认可看看。
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/certimate#702
No description provided.