id_rsa 和 id_dsa 以及 .crt和.key和.ppk和.pem文件
[ 2021-03-11 17:06:50 | 作者: admin ]
p.s.不要通过文件后缀就判断文件内容,.key或者.cfg文件都有可能是私钥,你只有打开了才知道里面是什么,.pem也可能包括私钥/公钥/证书。最好使用前打开文件看看里面包含了哪些内容。
基本知识:
1、RSA和DSA都是非对称加密方法。
2、私钥加密内容,只能公钥解密,公钥加密内容,只能私钥解密。公钥加密的公钥不能解密的。
3、私钥一般保存在比较安全地方,其他用户接触不到
4、id_rsa和id_dsa为一种密钥对的私钥文件,目前认为id_dsa不够安全弃用,也可以加个.key后缀如id_rsa.key。
5、id_rsa.pub 是 id_rsa私钥所对应的公钥文件,win通过puttygen导入openssh私钥后直接在文本框获取到。centos下可直接生成密钥对id_rsa与id_rsa.pub
7、PEM格式的私钥有2种模式,一种是带密码加密的,一种是没有带密码的。一般从生成格式可以看到。"-----BEGIN PRIVATE KEY-----"开头 "-----END PRIVATE KEY-----"结尾的为不要密码私钥。"-----BEGIN ENCRYPTED PRIVATE KEY-----"开头 "-----END ENCRYPTED PRIVATE KEY-----"结尾,是需要解密密码私钥。
【当心,PEM文件根本没有一个业界统一标准】
PEM文件可能包含几乎所有内容,包括公钥,私钥,或两者兼而有之,因为PEM文件不是标准文件。实际上,PEM仅表示文件包含base64编码的数据位。它被称为PEM文件,因为它引用了旧的Privacy-Enhanced Mail标准,该标准先于S / MIME作为邮件安全标准。这些标准以特定的base64格式指定了各种密钥和消息的格式。例如,请参见 RFC 1421 。
通常,PEM文件包含base64编码的密钥或证书,其标题行和页脚行的形式为 ----- BEGIN< whatever> ------ 和< code> ----- END< whatever> ---- 。随着时间的流逝,任何内容都有很多可能性,包括私钥,公钥,X509证书,PKCS7数据,包含多个证书的文件,同时包含私钥的文件和X509证书,PKCS#10证书签名请求
【关于私钥.key和证书.crt】
.key是证书的私钥,.crt是签名的证书。这只是生成证书的一种方法,另一种方法是将它们都包含在一个pem文件中,或者将另一个包含在p12容器中。这里比较标准的PEM文件格式为“KEY文件 + CRT文件“。
私钥key的演示代码如下:
公钥演示1代码如下:
公钥演示2代码如下:
证书crt、cer的演示代码如下:
您可以通过多种方式生成这些文件,如果您想对证书进行自签名,则只需发出以下命令
从那时起,您可以通过制作CA来生成自己的信任链,也可以从Verisign或Thawte等公司购买证书。
【有了key私钥如何获取公钥】
要获取id_rsa的公钥可以使用 puttygen 软件,转换菜单,导入openssh格式id_rsa密钥 后,在文本框中就可以显示公钥部分,可以直接复制保存为 id_rsa.pub 。
注意不要点击 保存公钥 按钮来获取id_rsa的公钥,这种putty格式公钥会保存额外代码,不兼容openssh,导致其他软件无法识别公钥格式。
参考:
OpenSSL在线生成合成PEM文件 https://www.myssl.cn/tools/merge-pem-cert.html
在线RSA私钥加密解密 http://tool.chacuo.net/cryptrsaprikey
基本知识:
1、RSA和DSA都是非对称加密方法。
2、私钥加密内容,只能公钥解密,公钥加密内容,只能私钥解密。公钥加密的公钥不能解密的。
3、私钥一般保存在比较安全地方,其他用户接触不到
4、id_rsa和id_dsa为一种密钥对的私钥文件,目前认为id_dsa不够安全弃用,也可以加个.key后缀如id_rsa.key。
5、id_rsa.pub 是 id_rsa私钥所对应的公钥文件,win通过puttygen导入openssh私钥后直接在文本框获取到。centos下可直接生成密钥对id_rsa与id_rsa.pub
#ssh-keygen -t rsa
6、.ppk文件是putty专用的私钥文件,可以通过软件puttygen导入普通openssh私钥后,得到putty专用.ppk私钥文件。7、PEM格式的私钥有2种模式,一种是带密码加密的,一种是没有带密码的。一般从生成格式可以看到。"-----BEGIN PRIVATE KEY-----"开头 "-----END PRIVATE KEY-----"结尾的为不要密码私钥。"-----BEGIN ENCRYPTED PRIVATE KEY-----"开头 "-----END ENCRYPTED PRIVATE KEY-----"结尾,是需要解密密码私钥。
【当心,PEM文件根本没有一个业界统一标准】
PEM文件可能包含几乎所有内容,包括公钥,私钥,或两者兼而有之,因为PEM文件不是标准文件。实际上,PEM仅表示文件包含base64编码的数据位。它被称为PEM文件,因为它引用了旧的Privacy-Enhanced Mail标准,该标准先于S / MIME作为邮件安全标准。这些标准以特定的base64格式指定了各种密钥和消息的格式。例如,请参见 RFC 1421 。
通常,PEM文件包含base64编码的密钥或证书,其标题行和页脚行的形式为 ----- BEGIN< whatever> ------ 和< code> ----- END< whatever> ---- 。随着时间的流逝,任何内容都有很多可能性,包括私钥,公钥,X509证书,PKCS7数据,包含多个证书的文件,同时包含私钥的文件和X509证书,PKCS#10证书签名请求
【关于私钥.key和证书.crt】
.key是证书的私钥,.crt是签名的证书。这只是生成证书的一种方法,另一种方法是将它们都包含在一个pem文件中,或者将另一个包含在p12容器中。这里比较标准的PEM文件格式为“KEY文件 + CRT文件“。
私钥key的演示代码如下:
-----BEGIN RSA PRIVATE KEY-----
ImcaJjXQsihqkuohYcWh2QuijBgXZC+o9IUl+2SNhw6OYXSJTuuD09VFQFAaUC41
AoGAfusLj179P1QYNJKo5a+Jqg4O0Uc3wgjYRlZdkBQ7BJ6O+nKeZaXM7wTlALwm
Z9RKyKbvzR9AGvqHgPxUn0xTNOzIN+WI/Yyg7vkEQUCdb96YVE7LRQgxiBtSgQUr
ya4rlUZb0S/s/yye2iWrCTuWbSOr2OJIuo4LPaCen3/W3ZECQQD4lpsqR+sIBFkY
FPayHMuNzlIkA31rx1fff19APAEytOiQi+opbBOhE73a+txQE6doGokawtIAtb/p
8CCtThbbFLJBIRjQWCIl1NnNWSwlqPO9FQJBAOM05EVUzmDZeIUmRASvhOzrcvAv
sGbeIFbKmEihj4bFCvtypmeNvLMw1Apd1xfpnszr0/x9rGuxsuLLo49ZzfkCQQCF
i940OxgmwfDQovh166CXgKEZ93ZA9953Zb7Kedzu4Fom
-----END RSA PRIVATE KEY-----
ImcaJjXQsihqkuohYcWh2QuijBgXZC+o9IUl+2SNhw6OYXSJTuuD09VFQFAaUC41
AoGAfusLj179P1QYNJKo5a+Jqg4O0Uc3wgjYRlZdkBQ7BJ6O+nKeZaXM7wTlALwm
Z9RKyKbvzR9AGvqHgPxUn0xTNOzIN+WI/Yyg7vkEQUCdb96YVE7LRQgxiBtSgQUr
ya4rlUZb0S/s/yye2iWrCTuWbSOr2OJIuo4LPaCen3/W3ZECQQD4lpsqR+sIBFkY
FPayHMuNzlIkA31rx1fff19APAEytOiQi+opbBOhE73a+txQE6doGokawtIAtb/p
8CCtThbbFLJBIRjQWCIl1NnNWSwlqPO9FQJBAOM05EVUzmDZeIUmRASvhOzrcvAv
sGbeIFbKmEihj4bFCvtypmeNvLMw1Apd1xfpnszr0/x9rGuxsuLLo49ZzfkCQQCF
i940OxgmwfDQovh166CXgKEZ93ZA9953Zb7Kedzu4Fom
-----END RSA PRIVATE KEY-----
公钥演示1代码如下:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEApYvUQd1jnK4Vf1ek8vJ8sRzH+Y9ClgBforqtbret+sGksiXV7ys6yDuJr35kUbOW7euGsIoEe9df18xHKszYc+TIAsiSWr26A6Ediax+i0WuJ+9+ECKgrMrM9bFUEcaZPRRZ0Qp7NT+LwGnz4iD6aDJnFVHjKitJvT8mjcwOfgU= imported-openssh-key
公钥演示2代码如下:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCFSwKKJQ2hO5uaDAdWayCx5DFzBeqpgvCPxQno8+IcAXI+fR9627XMnARJhMTiUxsHsRZDYEWpIajPt7j91cm1rtRgWDZqlc4IFiis04bpfVTxN/jkzJcXhuB+t0bAjtf/ydDKFGr1zDJC97cZGQTuRLU6npNfNnnjzlfHwt2caQIDAQAB
-----END PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCFSwKKJQ2hO5uaDAdWayCx5DFzBeqpgvCPxQno8+IcAXI+fR9627XMnARJhMTiUxsHsRZDYEWpIajPt7j91cm1rtRgWDZqlc4IFiis04bpfVTxN/jkzJcXhuB+t0bAjtf/ydDKFGr1zDJC97cZGQTuRLU6npNfNnnjzlfHwt2caQIDAQAB
-----END PUBLIC KEY-----
证书crt、cer的演示代码如下:
-----BEGIN CERTIFICATE-----
VVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UE
ChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
ZXJ0cnVzdC5jb20xKzApBgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBBcHBs
NzExMDY5NDAxMTAvBgNVBAsTKFNlZSB3d3cucmFwaWRzc2wuY29tL3Jlc291cmNl
cy9jcHMgKGMpMDcxLzAtBgNVBAsTJkRvbWFpbiBDb250cm9sIFZhbGlkYXRlZCAt
XCKBNQNAzybtImcaJjXQsihqkuohYcWh2QuijBgXZC+o9IUl+2SNhw6OYXSJTuuD
09VFQFAaUC41rLcU9BDh6w7xmGnZJzZ0H8jm2E9NA6s6DId7qQ+f/YdkKePRR+Dw
p9GnjmheMvhqs0DFj+tCFhHX3PK8WGrYBYG8ejsgo8uKAKTkishpOMyTs4CmTlDX
chn5QGRjpq2FlIqqlTwLdMGpkeUSZjuAFblLhTQs158Q5VHC5SH+3DvJW+g7/CpT
jBhiTnfNyD19rUmrWZ2dmic50B32BAiIO9OepmVvI8nA1TBvNFfhX75cOCk=
-----END CERTIFICATE-----
VVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UE
ChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
ZXJ0cnVzdC5jb20xKzApBgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBBcHBs
NzExMDY5NDAxMTAvBgNVBAsTKFNlZSB3d3cucmFwaWRzc2wuY29tL3Jlc291cmNl
cy9jcHMgKGMpMDcxLzAtBgNVBAsTJkRvbWFpbiBDb250cm9sIFZhbGlkYXRlZCAt
XCKBNQNAzybtImcaJjXQsihqkuohYcWh2QuijBgXZC+o9IUl+2SNhw6OYXSJTuuD
09VFQFAaUC41rLcU9BDh6w7xmGnZJzZ0H8jm2E9NA6s6DId7qQ+f/YdkKePRR+Dw
p9GnjmheMvhqs0DFj+tCFhHX3PK8WGrYBYG8ejsgo8uKAKTkishpOMyTs4CmTlDX
chn5QGRjpq2FlIqqlTwLdMGpkeUSZjuAFblLhTQs158Q5VHC5SH+3DvJW+g7/CpT
jBhiTnfNyD19rUmrWZ2dmic50B32BAiIO9OepmVvI8nA1TBvNFfhX75cOCk=
-----END CERTIFICATE-----
您可以通过多种方式生成这些文件,如果您想对证书进行自签名,则只需发出以下命令
openssl genrsa 2048 > host.key
chmod 400 host.key
openssl req -new -x509 -nodes -sha256 -days 365 -key host.key -out host.cert
请注意,使用自签名证书时,浏览器会警告您该证书不是“受信任的”,因为该证书尚未由浏览器信任列表中的证书颁发机构签名。chmod 400 host.key
openssl req -new -x509 -nodes -sha256 -days 365 -key host.key -out host.cert
从那时起,您可以通过制作CA来生成自己的信任链,也可以从Verisign或Thawte等公司购买证书。
【有了key私钥如何获取公钥】
要获取id_rsa的公钥可以使用 puttygen 软件,转换菜单,导入openssh格式id_rsa密钥 后,在文本框中就可以显示公钥部分,可以直接复制保存为 id_rsa.pub 。
注意不要点击 保存公钥 按钮来获取id_rsa的公钥,这种putty格式公钥会保存额外代码,不兼容openssh,导致其他软件无法识别公钥格式。
参考:
OpenSSL在线生成合成PEM文件 https://www.myssl.cn/tools/merge-pem-cert.html
在线RSA私钥加密解密 http://tool.chacuo.net/cryptrsaprikey
[最后修改由 admin, 于 2021-03-14 22:30:06]
评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=2769
这篇日志没有评论。
此日志不可发表评论。