使用 PKCS7 签名验证 实例身份文档 - Amazon Elastic Compute Cloud

使用 PKCS7 签名验证 实例身份文档

本主题说明如何使用 PKCS7 签名和 AWS DSA 公有证书验证实例身份文档。

使用 PKCS7 签名和 AWS DSA 公有证书验证实例身份文档
  1. 连接到实例。

  2. 从实例元数据中检索 PKCS7 签名,并将其连同所需的页眉和页脚添加到名为 pkcs7 的新文件。根据实例使用的 IMDS 版本,使用以下命令之一。

    IMDSv2
    $ echo "-----BEGIN PKCS7-----" >> pkcs7 \ && TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/dynamic/instance-identity/pkcs7 >> pkcs7 \ && echo "" >> pkcs7 \ && echo "-----END PKCS7-----" >> pkcs7
    IMDSv1
    $ echo "-----BEGIN PKCS7-----" >> pkcs7 \ && curl -s http://169.254.169.254/latest/dynamic/instance-identity/pkcs7 >> pkcs7 \ && echo "" >> pkcs7 \ && echo "-----END PKCS7-----" >> pkcs7
  3. AWS 公有证书 中找到您所在区域的 DSA 公有证书,并将内容添加到名为 certificate 的新文件。

  4. 使用 OpenSSL smime 命令来验证签名。包括 -verify 选项以指示需要验证签名,而包括 -noverify 选项则指示不需要验证证书。

    $ openssl smime -verify -in pkcs7 -inform PEM -certfile certificate -noverify | tee document

    如果签名有效,则会显示 Verification successful 消息。

    此命令还会将实例身份文档的内容写入一个名为 document 的新文件。您可以使用以下命令将来自实例元数据的实例身份文档内容与此文件的内容进行比较。

    $ openssl dgst -sha256 < document
    $ curl -s -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/dynamic/instance-identity/document | openssl dgst -sha256

    如果无法验证签名,请联系 AWS Support。