[英]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.