文件格式"/>
linux内核签名创建私钥文件,使用openssl命令剖析RSA私钥文件格式
Openssl提供了强大证书功能,生成密钥对、证书,颁发证书、生成crl、验证证书、销毁证书等。本文将j介绍如何利用openssl的命令分析RSA私钥文件格式,同时也将简单介绍几种常见的私钥文件格式。
1 生成私钥文件
openssl有多种方法生成私钥:
genrsa生成RSA密钥。
req在生成req证书请求时同时产生密钥。
genpkey除了可以生成RSA密钥外,还可以生成DSA、DH密钥。
这里我使用genpkey命令生成RSA私钥文件,选择DES-EDE3-CBC算法进行加密,口令是1234:
openssl genpkey -algorithm RSA -out privatekey.pem -pass pass:1234 -des-ede3-cbc
命令执行后输出私钥文件privatekey.pem,默认输出为PEM格式,密钥长度为1024,接下来使用文本工具直接打开该文件,可以看到如下内容:
-----BEGINENCRYPTED PRIVATE KEY-----
MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIhrQ3ApYYe1ACAggA
MBQGCCqGSIb3DQMHBAgyM5zYLuXOdQSCAoAFqnCRqkpoHJTY0BpLeekzjsuzdTOq
DkgxJMi4WRt1rZNyHqarbhHCZGC9Lug/xbLW5e2ZtjYVJ+ljmFb4lUaAch4nAgoz
m0J5YyrbFKppiqlk6vkS5hKfpKbWrx5hkQzMt6OsVEQFj2U+EvOI8SVgI6LkjNmh
7qokYxv9Inx9joM6agEUY9fXdAu53CyfjpneX95vxUHIn7hHmhxH7MYua619N7x+
JVA65b3Kj45aH3cnY/kMAQ78EN9aLpqYXzn6j9GRdUd2JMuP0IrYlREw3/z8Qn68
CwGXzGtkYnlt0xHdOG/tnmKWqBg1cY9uVx6g6JT1BUabqwxVODaMqaSsFr4o3xJo
3TTh8TswK0V/+3JLkXtasI7V8cRj2dksccGApujmB5eymU3XXTlX3iXs481I4kmz
JOZHbqfGOpyzW6WqhMO+LebIkyIGMlCGRiJ3PNSQI9w6bfZ9FoqC6OfFKY1OEmBN
6ALtPc+cYXeO5Msx9mbakIYRbcjlVmelPsLyvAceW/09OG909turflvYaGnM+SKd
KzWn2gFr3YwF57WZlX2jifYUUnjHVMZW7s/k6hgOxcEnvBOg4Ug/cKdNPUEB7tJx
nvsR+odHypyjgyphLEP8UmEiz3/hnPV8lhLDAPV7fKaK+zDglKqQYF3KBLh55q6h
PPe1HqahifK9EKqWOl7m1HhFPIZTex4clLy98rB3gyXnL0qx4+A7WD6uLJbU285j
IWMNq3f1c80ZPrpbhT6hd6Z9zUwfYT6gTO9gIIe4d5KVmfjNaFwSls5zaI6x7AJp
d/Xl/m1u469+J0rWyeY3D4wtahvZrKMXRrILtJ5OgkWPak2FTyMu/Hs/
-----ENDENCRYPTED PRIVATE KEY-----
私钥经过PEM编码后在文件头尾都添加了标签,用以说明当前的文件格式。从标签内容也可以看出私钥是加密的,因为有“ENCRYPTED”。中间的私钥内容是经过BASE64编码的,这样方便私钥的传递,例如在网络上传输,数据复制粘贴。
例子只是PEM文件格式的其中一种,以下是平时可能会碰到的PEM私钥格式:
PKCS#8 私钥加密格式
-----BEGIN ENCRYPTED PRIVATE KEY-----
BASE64私钥内容
-----ENDENCRYPTED PRIVATE KEY-----
PKCS#8 私钥非加密格式
-----BEGIN PRIVATE KEY-----
BASE64私钥内容
-----END PRIVATEKEY-----
Openssl ASN格式
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info:DES-EDE3-CBC,4D5D1AF13367D726
BASE64私钥内容
-----END RSA PRIVATE KEY-----
除了以上几种,还有微软的PVK格式;以及DER编码格式,就是在使用PEM编码前的数据,由于没有密码保护,平时很少直接使用。
Openssl ASN格式在加密私钥数据时只能用MD5算法生成key
更多推荐
linux内核签名创建私钥文件,使用openssl命令剖析RSA私钥文件格式
发布评论