繁体   English   中英

libcurl:如何使用 TPM 私钥进行相互 SSL 身份验证

[英]libcurl: how to use TPM private key for mutual SSL authentication

我使用 C libcurl 库。 我需要将 OCSP 装订与相互身份验证相结合。 为此,我将采用以下示例的模型。 但是,我需要将客户端证书的私钥存储在 TPM 芯片中。 您知道如何使用 tpm2-tss-engine 做到这一点吗? 谢谢你的帮助。

https://curl.haxx.se/libcurl/c/smtp-ssl.html https://curl.haxx.se/libcurl/c/CURLOPT_SSLCERT.html

我能够将存储在 TPM 中的密钥与openssl s_client (也许 curl 可以实现),但能够发出 HTTPS 请求并接收响应。

openssl允许您从 TPM 读取密钥。 您可以使用命令s_client通过 TCP 连接,然后发送您的 HTTP 请求。

示例命令如下所示:

文件:http_request.txt(末尾有两个换行符)

GET /url/path HTTP/1.0
Host: hostname.com


cat http_request.txt | \
openssl s_client \
  -nocommands \
  -ign_eof \
  -msgfile /dev/null \
  -quiet \
  -keyform engine \
  -engine pkcs11 \
  -cert mycertificate.pem \
  -CAfile root.ca.pem \
  -key 'pkcs11:model=SWTPM;manufacturer=Intel;token=mytoken;object=myobject;type=private;pin-value=mypin' \
  -connect hostname.com:443

这允许我使用 TPM 向 AWS IoT 发出请求: iot:AssumeRoleWithCertificate ,它假定密钥是磁盘上的文件: https iot:AssumeRoleWithCertificate 。 html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM