如何从.pem openssl文件获取密钥ID?


5

我有一个由openssl生成的.pem私钥。如何从中提取密钥ID?

编辑:生成的rsa密钥对适用于Amazon cloudfront。在控制台上载后,将显示“密钥ID”。但是,我生成的私钥不适用于我的账户,并且我没有任何可用于在我的AWS账户上上传公钥的插槽(有2个公钥的限制)。


1
是否有任何特定程序要求您输入这样的密钥ID?
grawity 2011年

Answers:


11

裸键没有“键ID”。它们只是一系列数字。

如果密钥属于X.509证书,则将使用证书的指纹(DER编码的证书的SHA-1哈希)进行标识:openssl x509 -outform der | openssl sha1openssl x509 -noout -fingerprint

否则(如果它只是一个光秃秃的公共/私有密钥),该的SHA-1散列的公共密钥有时使用(再次,DER编码),但我不知道它的任何标准。您可以使用提取公共密钥openssl rsar -pubout -outform der,然后再次管道连接到openssl sha1您的程序是否需要。


CloudFront使用的“密钥对ID”是具有该密钥的数据库条目的序列号。上传两次的同一密钥将具有不同的ID;我刚刚测试过。


谢谢。我已经编辑了我的问题。看来生成此AWS'密钥ID'的方式是专有的,所以我的问题是完全错误的……
ascobol 2011年

CloudFront密钥ID确实是专有的。查看最新答案。
grawity 2011年

2

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.