使用 PKCS7 签名验证 实例身份文档 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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

使用 PKCS7 签名和 Amazon 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. Amazon 公有证书 中找到您所在区域的 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

    如果无法验证签名,请联系 Amazon Web Services Support。