使用 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。