aws 根固定错误 CURLE_SSL_PINNEDPUBKEYNOTMATCH

aws root pinning error CURLE_SSL_PINNEDPUBKEYNOTMATCH

我正在使用 libcurl 并根据此文档将证书固定转移到 AWS root https://www.amazontrust.com/repository/

我使用了来自该网站的 SHA-256 主题哈希 Public 关键信息数据,形成了一个字符串:

static string PUBLIC_KEY = "sha256//fbe3018031f9586bcbf41727e417b7d1c45c2f47f93be372a17b96b50757d5a2;sha256//7f4296fc5b6a4e3b35d3c369623e364ab1af381d8fa7121533c9d6c633ea2461;sha256//36abc32656acfc645c61b71613c4bf21c787f5cabbee48348d58597803d7abc9;sha256//f7ecded5c66047d28ed6466b543c40e0743abe81d109254dcf845d4c2c7853c5;sha256//2b071c59a0a0ae76b0eadb2bad23bad4580b69c3601b630c2eaf0613afa83f92";

并将字符串设置为 curl

curl_easy_setopt(handle, CURLOPT_PINNEDPUBLICKEY, PUBLIC_KEY.c_str()); 

我得到的 curl 错误是 CURLE_SSL_PINNEDPUBKEYNOTMATCH 据我搜索,Google 对原因一无所知。如果有人对如何解决这个问题有任何意见并且仍然固定到根目录,那将非常有用。谢谢。

找到原因了。尚不支持根固定。 13.11 支持 PINNEDPUBLICKEY 的中间和根固定 CURLOPT_PINNEDPUBLICKEY 在比较固定密钥时不考虑中间证书和根证书的哈希值。因此它与 "HTTP Public Key Pinning" 不兼容,因为还可以固定中间证书和根证书。这非常有用,因为它可以防止网络管理员 "locking themself out of their servers".

添加此功能将使卷曲固定与 HPKP 100% 兼容,并允许更灵活的固定。

https://curl.haxx.se/docs/todo.html