0

我正在使用 mbedtls 2.16.3 。我使用 mbedtls 库创建二级证书并使用证书设置 https 通信。根证书(也可以是 CA)是使用 ECC secp256r1 的自签名证书。设备认证由根证书签名,密钥算法也是ECC secp256r1。我在 OS 系统和 Firefox 认证管理器中安装了 root 认证。Chrome收到证书后会显示“Certificate Unknown”(chrome版本为86.0.4240.75)

Wireshark显示如下: Wireshark 标题

chrome显示如下:

NET::ERR_CERT_INVALID 主题:10.9.1.67 颁发者:Web 服务器根 到期日期:2021/10/13 当前日期:2020/10/19 PEM 编码链:

-----BEGIN CERTIFICATE----- MIIBejCCAR6gAwIBAgISANm85JYVS9N1992FvOfHxhsAMAwGCCqGSM49BAMCBQAw JzELMAkGA1UEBhMCQ04xGDAWBgNVBAMMD1dlYiBTZXJ2ZXIgUm9vdDAeFw0yMDEw MTYwMTIzMTdaFw0yMTEwMTMwMjQyNDRaMCExCzAJBgNVBAYTAkNOMRIwEAYDVQQD DAkxMC45LjEuNjcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATdpywNJKmMvDr2 esvqe9CVhjhQDgzzUo6WhMD91CosNJhkDtkMAbexQkq/je6IQyZABxFkiDMweLWe uJR3rTbNoy4wLDAPBgNVHREECDAGhwQKCQFDMAkGA1UdEwQCMAAwDgYDVR0PAQH/ BAQDAgOoMAwGCCqGSM49BAMCBQADSAAwRQIgPRgDnfR7NIXfUlvaUyDtsIJDUGV2 BFKf7wxElxfbKDICIQDpVu5Ty9tZznQeuch+5LV0vDqXm6EWg+Viv6w5O59QIg== -----END CERTIFICATE-----

-----BEGIN CERTIFICATE----- MIIBdDCCARigAwIBAgIRfRupqU8vSJw2LfGv1LSuXwAwDAYIKoZIzj0EAwIFADAn MQswCQYDVQQGEwJDTjEYMBYGA1UEAwwPV2ViIFNlcnZlciBSb290MB4XDTIwMTAx NjA5MjMxNloXDTQwMTAxNjA5MjMxNlowJzELMAkGA1UEBhMCQ04xGDAWBgNVBAMM D1dlYiBTZXJ2ZXIgUm9vdDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMZaKSeR hoDgIeVbNkBYY0/n7z4JD+y+bZBXuDsFzYbz4odAe2C3WxpJ7fUw6sOCs1jpy8mv neV1sRH3KXEXqNOjIzAhMA8GA1UdEwQIMAYBAf8CAQAwDgYDVR0PAQH/BA​​QDAgKE MAwGCCqGSM49BAMCBQADSAAwRQIgPa8BVP5Bt2YLQ3DHEbGsg79nJbtTSAKmAPaa 5NLEIEcCIQCENcnKEdTKV0L/1c3evynH/hP97mid58trLgBRlFU3Dw== -----END CERTIFICATE-----

但该认证在 Firefox/Edge 上运行良好。

如果我将自签名证书更改为 RSA 1024,Chrome 中的 https 连接就可以了。

4

1 回答 1

0

这个问题有一个非常快速的解决方案。在函数中:asn1write.cpp的mbedtls_asn1_write_algorithm_identifier,只需删除这行代码:MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_null(p, start));

于 2020-12-14T05:35:03.807 回答