由 MBEDTLS 生成的 Chrome 拒绝证书
Posted
技术标签:
【中文标题】由 MBEDTLS 生成的 Chrome 拒绝证书【英文标题】:Chrome Reject certificate generated by MBEDTLS 【发布时间】:2021-01-30 13:05:40 【问题描述】:我正在使用 mbedtls 2.16.3 。 我使用 mbedtls 库创建二级证书并使用证书设置 https 通信。 根证书(也可以是 CA)是使用 ECC secp256r1 的自签名证书。 设备认证由根证书签名,密钥算法也是ECC secp256r1。 我在 OS 系统和 Firefox 认证管理器中安装了 root 认证。 Chrome收到证书后会显示“Certificate Unknown”(chrome版本为86.0.4240.75)
wireshark 显示如下: Wireshark caption
chrome显示如下:
NET::ERR_CERT_INVALID 主题:10.9.1.67 颁发者:Web 服务器根 到期日期:2021/10/13 当前日期:2020/10/19 PEM 编码链:
-----开始证书----- MIIBejCCAR6gAwIBAgISANm85JYVS9N1992FvOfHxhsAMAwGCCqGSM49BAMCBQAw JzELMAkGA1UEBhMCQ04xGDAWBgNVBAMMD1dlYiBTZXJ2ZXIgUm9vdDAeFw0yMDEw MTYwMTIzMTdaFw0yMTEwMTMwMjQyNDRaMCExCzAJBgNVBAYTAkNOMRIwEAYDVQQD DAkxMC45LjEuNjcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATdpywNJKmMvDr2 esvqe9CVhjhQDgzzUo6WhMD91CosNJhkDtkMAbexQkq/je6IQyZABxFkiDMweLWe uJR3rTbNoy4wLDAPBgNVHREECDAGhwQKCQFDMAkGA1UdEwQCMAAwDgYDVR0PAQH/ BAQDAgOoMAwGCCqGSM49BAMCBQADSAAwRQIgPRgDnfR7NIXfUlvaUyDtsIJDUGV2 BFKf7wxElxfbKDICIQDpVu5Ty9tZznQeuch+5LV0vDqXm6EWg+Viv6w5O59QIg== -----结束证书-----
-----开始证书----- MIIBdDCCARigAwIBAgIRfRupqU8vSJw2LfGv1LSuXwAwDAYIKoZIzj0EAwIFADAn MQswCQYDVQQGEwJDTjEYMBYGA1UEAwwPV2ViIFNlcnZlciBSb290MB4XDTIwMTAx NjA5MjMxNloXDTQwMTAxNjA5MjMxNlowJzELMAkGA1UEBhMCQ04xGDAWBgNVBAMM D1dlYiBTZXJ2ZXIgUm9vdDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMZaKSer hoDgIeVbNkBYY0/n7z4JD+y+bZBXuDsFzYbz4odAe2C3WxpJ7fUw6sOCs1jpy8mv neV1sRH3KXEXqNOjIzAhMA8GA1UdEwQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgKE MAwGCCqGSM49BAMCBQADSAAwRQIgPa8BVP5Bt2YLQ3DHEbGsg79nJbtTSAKmAPaa 5NLEIEcCIQCENcnKedTKV0L/1c3evynH/hP97mid58trLgBRlFU3Dw== -----结束证书-----
但认证在 Firefox/Edge 上运行良好。
如果我将自签名证书更改为 RSA 1024,Chrome 中的 https 连接就可以了。
【问题讨论】:
【参考方案1】:这个问题有一个非常快速的解决方案。 在函数中:asn1write.cpp的mbedtls_asn1_write_algorithm_identifier,删除这行代码即可:MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_null(p, start));
【讨论】:
以上是关于由 MBEDTLS 生成的 Chrome 拒绝证书的主要内容,如果未能解决你的问题,请参考以下文章
未使用 mbedTLS+ATECC608A 创建 JITP 证书(与 moquitto_pub 一起使用)