web-dev-qa-db-ja.com

.pem opensslファイルからキーIDを取得するにはどうすればよいですか?

Opensslによって生成された.pem秘密鍵があります。それからキーIDを抽出する方法は?

編集:生成されたrsaキーペアはAmazonクラウドフロント用です。コンソールにアップロードすると、「キーID」が表示されます。ただし、生成した秘密鍵は自分のアカウント用ではなく、AWSアカウントに公開鍵をアップロードするために使用できるスロットがありません(公開鍵は2つに制限されています)。

5
ascobol

裸鍵には「鍵ID」がありません。それらは単なる一連の数字です。

キーがX.509証明書に属している場合、証明書のフィンガープリント(DERでエンコードされた証明書のSHA-1ハッシュ)が識別に使用されます:openssl x509 -outform der | openssl sha1またはopenssl x509 -noout -fingerprint

それ以外の場合(裸の公開/秘密鍵ペアの場合)、public鍵のSHA-1ハッシュが使用されることがあります(これもDERエンコーディングです)が、その標準はわかりません。 。 openssl rsar -pubout -outform derを使用して公開鍵を抽出し、プログラムで必要な場合はopenssl sha1に再度パイプすることができます。


CloudFrontで使用される「キーペアID」は、そのキーを持つデータベースエントリのシリアル番号です。同じキーを2回アップロードすると、IDが異なります。私はそれをテストしました。

12
user1686

Amazonは現在、(EC2で実行されているサーバーだけでなく)任意のサーバーでそのようなアクションを実行するためのツールを提供しています。どのUbuntuコンピューターでも、apt-getを使用してツールをインストールできます。

$ Sudo apt-get install ec2-AMI-tools ec2-api-tools

My.pemのフィンガープリントを取得するための構文は次のとおりです。

$ ec2-fingerprint-key My.pem
62:44:56:f7:91:f2:8b:9b:44:7c:17:0e:39:c7:34:68:f5:b2:3c:57

ec2-fingerprint-keyは入力するのに少し長いので、同等のショートカットec2fpがあります。

$ ec2fp My.pem
62:44:56:f7:91:f2:8b:9b:44:7c:17:0e:39:c7:34:68:f5:b2:3c:57
2
dotancohen