使用libcurl固定SSL证书

时间:2015-11-27 10:27:17

标签: ssl curl ssl-certificate pinning

我想知道这个例子是否足以用libcurl提供证书固定: http://curl.haxx.se/libcurl/c/cacertinmem.html

因为我发现curl也允许http://curl.haxx.se/libcurl/c/CURLOPT_PINNEDPUBLICKEY.html

由于我将使用自签名证书并且只信任它,我不知道是否真的有必要确定它。

resume:如果我只将我的证书(自签名)添加到x509证书商店(如示例),是否可以破坏连接?我需要添加额外的支票吗?我是否需要使用CURLOPT_PINNEDPUBLICKEY选项?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以在git 2。8(2016年3月)的新卷曲选项的实现中找到另一个示例:

commit aeff8a6Christoph Egger (siccegge)(2016年2月15日) Junio C Hamano -- gitster --于2016年2月24日commit e79112d合并)

  

http:实施公钥固定

     

为公钥锁定添加http.pinnedpubkey配置选项。它允许完整公钥的libcurl - base64(sha256(pubkey))filename支持的任何字符串。

     

如果cURL不支持固定(太旧),则向用户输出警告。

git config man page提及:

http.pinnedpubkey:
  

https服务的公钥。
  它可以是PEM或DER编码的公钥文件的文件名,也可以是以“sha256//”开头的字符串,后跟公钥的base64编码sha256哈希。   另见libcurl 'CURLOPT_PINNEDPUBLICKEY'   如果设置了此选项但cURL不支持,git将退出并显示错误。