Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan tanda tangan PKCS7 untuk memverifikasi dokumen identitas instans
Topik ini menjelaskan cara memverifikasi dokumen identitas instance menggunakan tanda tangan PKCS7 dan sertifikat publik AWS DSA.
Untuk memverifikasi dokumen identitas instans menggunakan tanda tangan PKCS7 dan sertifikat publik DSA AWS
-
Hubungkan dengan instans.
-
Ambil tanda tangan PKCS7 dari metadata instans dan tambahkan ke file baru bernama
pkcs7
beserta header dan footer yang diperlukan. Gunakan salah satu perintah berikut, tergantung pada versi IMDS yang digunakan oleh instans. -
Temukan sertifikat publik DSA untuk Wilayah Anda di AWS sertifikat publik dan tambahkan konten ke file baru yang bernama
certificate
. -
Gunakan perintah OpenSSL smime untuk memverifikasi tanda tangan. Masukkan opsi
-verify
untuk menunjukkan bahwa tanda tangan perlu diverifikasi, dan opsi-noverify
untuk menunjukkan bahwa sertifikat tidak perlu diverifikasi.$
openssl smime -verify -inpkcs7
-inform PEM -certfilecertificate
-noverify | tee documentJika tanda tangan valid, pesan
Verification successful
muncul.Perintah tersebut juga menulis konten dokumen identitas instans ke file baru bernama
document
. Anda dapat membandingkan konten dokumen identitas instans dari metadata instans dengan konten file ini menggunakan perintah berikut.$
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 -sha256Jika tanda tangan tidak dapat diverifikasi, kontak AWS Support.
Prasyarat
Prosedur ini membutuhkan kelas System.Security
Microsoft.NET Core. Untuk menambahkan kelas ke PowerShell sesi Anda, jalankan perintah berikut.
PS C:\>
Add-Type -AssemblyName System.Security
catatan
Perintah menambahkan kelas ke PowerShell sesi saat ini saja. Jika Anda memulai sesi baru, Anda harus menjalankan perintah lagi.
Untuk memverifikasi dokumen identitas instans menggunakan tanda tangan PKCS7 dan sertifikat publik DSA AWS
-
Hubungkan dengan instans.
-
Ambil tanda tangan PKCS7 dari metadata instans, konversi ke byte array, dan tambahkan ke variabel bernama
$Signature
. Gunakan salah satu perintah berikut, tergantung pada versi IMDS yang digunakan oleh instans. -
Ambil dokumen identitas instans plaintext dari metadata instans, ubah menjadi array byte, dan tambahkan ke variabel bernama
$Document
. Gunakan salah satu perintah berikut, tergantung pada versi IMDS yang digunakan oleh instans. -
Temukan sertifikat publik DSA untuk Wilayah Anda di AWS sertifikat publik dan tambahkan konten ke file baru yang bernama
certificate.pem
. -
Ekstrak sertifikat dari file sertifikat dan simpan dalam variabel bernama
$Store
.PS C:\>
$Store
= [Security.Cryptography.X509Certificates.X509Certificate2Collection]::new([Security.Cryptography.X509Certificates.X509Certificate2]::new((Resolve-Pathcertificate.pem
))) -
Verifikasi tanda tangan.
PS C:\>
$SignatureDocument
= [Security.Cryptography.Pkcs.SignedCms]::new()PS C:\>
$SignatureDocument
.Decode($Signature
)PS C:\>
$SignatureDocument
.CheckSignature($Store
, $true)Jika tanda tangan valid, perintah tidak mengembalikan keluaran. Jika tanda tangan tidak dapat diverifikasi, perintah menampilkan
Exception calling "CheckSignature" with "2" argument(s): "Cannot find the original signer
. Jika tanda tangan tidak dapat diverifikasi, hubungi AWS Support. -
Validasi konten dokumen identitas instans.
PS C:\>
[Linq.Enumerable]::SequenceEqual($SignatureDocument
.ContentInfo.Content,$Document
)Jika konten dokumen identitas instans valid, perintah mengembalikan
True
. Jika dokumen identitas instans tidak dapat divalidasi, kontak AWS Support.