第三十八章 PEM_密钥对生成与读取方法

一、PEM概述

PEM是OpenSSL和许多其他SSL工具的标准格式,OpenSSL 使用PEM 文件格式存储证书和密钥。这种格式被设计用来安全的包含在ascii甚至富文本文档中,如电子邮件。这意味着您可以简单的复制和粘贴pem文件的内容到另一个文档中。

二、PEM文件介绍

PEM文件是Base64编码的证书。PEM证书通常用于web服务器,因为他们可以通过一个简单的文本编辑器,很容易地转换成可读的数据。通常当一个PEM编码在文本编辑器中打开文件,它会包含不同的页眉和页脚。

#1.CSR(证书签名请求)
-----BEGIN CERTIFICATE REQUEST----- and -----END CERTIFICATEREQUEST-----

#2.私钥
-----BEGIN RSA PRIVATE KEY----- and -----END RSA PRIVATEKEY-----

#3.证书文件
-----BEGIN CERTIFICATE----- and -----END CERTIFICATE-----

三、OpenSSL简介

OpenSSL:是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。

四、PEM_密钥对生成和转化

1.生成RSA私钥

#1.生成RSA私钥
[root@datalake-jumpersvc ~]$ openssl  genrsa -out rsa_private_key.pem1024
Generating RSA private key, 2048 bit long modulus
..........................+++
.............................+++
e is 65537 (0x10001)

#2.查看是否生成私钥文件
[root@datalake-jumpersvc ~]$ ll
总用量 32
-rw-r--r--  1 root root 1679 4月  16 14:05 rsa_private_key.pem1024

#3.查看私钥文件
[root@datalake-jumpersvc ~]$ cat rsa_private_key.pem1024 
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAncuvSWLvi9Hbm2emTsTJl/mNUZjgMJQzTFn4yX5aHBhx0Bou
ZIz3Dg7l91b1GPtAWoY8Xol5hznpjGEugWT45WAIAbmSGqoutfs80EQN89yokBbg
JFq7JtMPCiaYaE1Zj4QZ+lpRJWwyn/FDZfWW2GcpDOq1jB5qZLn5vlJ+j8262sxR
EkyT9hcci7TTZ6LpQYc8ALW0tYDH5muT3veBcNHbRUgO2tTzOZ+nKFYyblzDsTuZ
K7SibGf8mLfijAnsAPCwPOV0AJe1igP9U8W1BD50E9F7rzKr4Z861H/hUAFht+p8
mz3KiqApQicSCjn3MdB7FPBYAY5dss5tCAPW/wIDAQABAoIBAQCIKEd6RXp55X1f
XVKtyTRChL0iWY2pnVeeXExGYVaTw6wBa3X4oYJUiRp6EHixM6vV8NqKoIlS2+/g
h8K/OEdkdTazdlLR22Mu+DkDZJW9hPuWSYbjF79BwwDJO4BrD8NmCRD5a5F1fyU3
ydDkW8Pruyg60xQQcfZQMAGF7lzy67FevgnpmSFN2jMeYdlsCSx5TqTN8mVql0Qh
MdTBEP7UNMENmSm9V2HmXoN+ERwVHYymETl7LC57Kn1094pzlCq+kTJtQT4QAsc1
EDcbVUx3viADbLUz5lItO6KILOqRUTzf2C9ORXoEuRpiDzZlaCe/VYPVxD7v8Zwz
z90T1jeBAoGBANEEOGeW6VIzLvjZhdFC7SHwxINW5Dg5HI1LZ1w7sJJYGLeovosX
7zoG/2QdJorOq7m+ssEWHR0TwmTzSPGPHpU0hqdnxk7akXvm0BdneqZykGJAVkw3
3mNlDMMVl4YFVl/YiF2kgk2WgpY+9XXrlsNQvr4tJRceZjNBs1MbfZ9hAoGBAMFD
+qmEgBSdLmlj/U2bxEDmCW6byc+5KuDHhEkUps56ls0G8CKOVY1QgIvs3J7XKFpI
4esyBdOX5KsWZRDvKd+ExUstfVPFR3r7AFghoxt5qo7Msk/eDq0YkC/uR8N7uRzL
Sa3eeSz/VAmotem1hyOoJonfJadgg+P6SB9ZPPJfAoGARZmRKrVu5kdS6dyNGdye
WAHzfgSuJCaoYkhsl6Lsrh6VxHp1UJ3ctEbmPjESx4AAYO6mWXOCqE8PGUyFyqIs
veRqvk3pFBLmBQsb2d9EUS6u83iXA/RKonBgqomDFkaqt2nEJuKD3VA0FdHLLMQR
ROKbUXp48lTWFVVYYGE0GKECgYBF4mD3f1QZICUyMtfbgmHa3dO3TVoSZPCeS0cI
bhFLRITXKpUWycUhzmRNNJ8qSL7stsIKnBIDSz+CphxxnSnVC1uULaTN795DGBQt
yiwCuWH1NQudWbyQ1vr8efs1Mr3jLZc86d+DZ+hpfboaAmwVdq5I2InzFjFa9Juz
yj8BnQKBgQCmP6KuUviZG2MF+O9tUYiB/fEIVh5GD0cYkECt2PWPKM6WmihGdCy2
j9jHSTUt0N+pr9L+zf6Jfh2aKs5Y12cEe0njE8PwzbYjqP+XSl22frUzRNg1ISSh
ZubGCfkoLCuicWFJhLTJ8umSv0z7JpnTQfiLU6YkagAGf57k11fuOw==
-----END RSA PRIVATE KEY-----

2.私钥转化

#1.修改密钥名称
[root@prd-tagging001 ~]# mv rsa_private_key.pem1024  jhno1-user.pem

#2.修改密钥权限
[root@prd-tagging001 ~]# chmod 400 jhno1-user.pem

#3.创建登录用户
[root@prd-tagging001 ~]# useradd jhno1

#4.创建ssh连接目录
[root@prd-tagging001 ~]# mkdir /home/jhno1/.ssh
 
#5.私钥转化
[root@prd-tagging001 ~]# ssh-keygen -y -f jhno1-user.pem > public_key1.pub

[root@prd-tagging001 ~]# cat public_key1.pub  > /home/appdeployment/.ssh/authorized_keys

#6.通过本地计算机xshell远程连接登录即可

五、SSL证书转pfx

openssl pkcs12 -export -out www.domain.com.pfx -inkey www.domain.com.key -in www.domain.com_cert.pem

命令格式:openssl pkcs12 -export -out 输出文件名称 -inkey key文件名称 -in pem文件名称

原文地址:https://www.cnblogs.com/jhno1/p/14666859.html