1、PKCS1私钥生成
# openssl genrsa -out private.pem 2048
Generating RSA private key, 2048 bit long modulus (2 primes)
.................................................+++++
..........+++++
e is 65537 (0x010001)
private.pem 的内容如下:
# cat private.pem
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEApr+dbhDYMKV9JbsezuZ2j+CJtl5Ww34K253FX6BRuQNxnaQd
UnXvDIEdyd96f58/xwTcSi9U9lzJgQ7ROCXLm7fcZ1DNGPNYcQfFBjNFy34mDdEF
GRbn6+bOahb/NCpI9lC8dkwoCTfiq58r+VzFlR+X/Jq0g5J4Uyi24EO9KL1dfwrk
mgdaCau6/gATom+2UYyIMmzgdZ2rrJoALWjv/cIducsBTfgS+oTV30bmoMMg1EWh
fQzbPG1Axqej1K0LJroxFF5VFsfx57ggxwyhbWxbXiYmbckD5QayRd5WDsO8T9ZU
Ab2Z/Tn6Mn3OnsLwgWBq4nij2W8OA6n3TkctYwIDAQABAoIBADMxMIvR8A0/QSSM
RfEPH+cb8Ctk2w45a+vwi9/HwE8kl4TmFXpzamhUW2jWiy0THulivJ6p2VOpONO+
UM0EDXZJBAlT7SNz0fshf4NfylWm7NfhC8egGKN7wHMhjEffk3bLYpCO4NuzpIs7
2qw7pw0ZHfgXJsQd+4LMRRikszYGLgF/CDRQ8H0n+RPceSrw4P0GYtOaNDaMwXEN
ov48L+QaYXEB9411YPmnpQsB+DZKI22J4LLRUMLP1gxLROsl3nMjSDT94Lx/TCp8
KFtgmnkdIEvKVzHIfv9c2HtNqpiQoe/88N9kN9+gV0ZN+t253TCJv7VU+S4KJoj7
EciAKkECgYEA00QhG08Ot4DQyJjQX72WcSppfnp9QrrRREFGpsUuYvOG9gwLHYSx
GAX9+889UduHQNxNODAhFJt4vh6jmrfVRLJnc9qP4qXDjU2VzeqX0vwPDU8xGK4M
NC71wDQjJEIBofhDB0XiKuIijQ9SbyfG51djEeLJZKwcEDdxUHYufsUCgYEAyg5e
Agx1Q/8g5gesVKBrl9UaSTWu+3fPDPTax35t4GbUlSktNE8RQWfYmutn5hjF4Rep
PeDln304MHW3EUakjgziHiAuDlo3R3e5pe1XUJwE7xPPQH1F6V0nv5Rzw+PSw7Ym
4hr3IUo3mw/DOkO5bbOFO7H1tDJE/PGOuvP2PgcCgYB6GC6V7LuRm5WNyJrsKdIu
9pbfLIUFspfMPXlKWjxznVALFGy8E3qRaq0dAOjsTNW+y1KpPU9w7GT8YxKkEMfl
GsGk99Qd5TS9jfAcgA5cNaWxSGoUXEnbQqRt/vOsOaVd6O873cxWgjf7k7ZNXQyb
mCo+JPXFA554VMJdAN/gDQKBgHIVWJjZheBljaKzlGaXyQgKR3Qsfmb3h40uNtTK
mqlIBiFOBXryZbDDPHaEEb7GH/vuix0n/R5m6jHaVQnJFCIsPgN6ceaio3GTtNtt
vY4C+XoveiZUVQPlGAtAe3iQCrF8CEpDpWNDb0/6v2UHVgwNf11sJmmetHsIvGjs
VA1DAoGAdTXolXfHeoF6Wuaqo+u0INgtq3qxx+L2cVqcNZL3Uyv00N+0f1ZNd555
FprUA3PaivGsuO3eAHT4EXT0Iz7606az49tkGrbKQNBNdfs2dinGBEmbU0W1xroX
PzUQbnXskicn6N3GAJJgOtccSFcjwSRPBbOlyVCZzc9pYDH36yk=
-----END RSA PRIVATE KEY-----
2、PKCS1私钥转换为PKCS8
# openssl pkcs8 -topk8 -inform PEM -in private.pem -outform pem -nocrypt -out pkcs8.pem
pkcs8.pem文件内容
# cat pkcs8.pem
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCmv51uENgwpX0l
ux7O5naP4Im2XlbDfgrbncVfoFG5A3GdpB1Sde8MgR3J33p/nz/HBNxKL1T2XMmB
DtE4Jcubt9xnUM0Y81hxB8UGM0XLfiYN0QUZFufr5s5qFv80Kkj2ULx2TCgJN+Kr
nyv5XMWVH5f8mrSDknhTKLbgQ70ovV1/CuSaB1oJq7r+ABOib7ZRjIgybOB1naus
mgAtaO/9wh25ywFN+BL6hNXfRuagwyDURaF9DNs8bUDGp6PUrQsmujEUXlUWx/Hn
uCDHDKFtbFteJiZtyQPlBrJF3lYOw7xP1lQBvZn9Ofoyfc6ewvCBYGrieKPZbw4D
qfdORy1jAgMBAAECggEAMzEwi9HwDT9BJIxF8Q8f5xvwK2TbDjlr6/CL38fATySX
hOYVenNqaFRbaNaLLRMe6WK8nqnZU6k4075QzQQNdkkECVPtI3PR+yF/g1/KVabs
1+ELx6AYo3vAcyGMR9+TdstikI7g27OkizvarDunDRkd+BcmxB37gsxFGKSzNgYu
AX8INFDwfSf5E9x5KvDg/QZi05o0NozBcQ2i/jwv5BphcQH3jXVg+aelCwH4Nkoj
bYngstFQws/WDEtE6yXecyNINP3gvH9MKnwoW2CaeR0gS8pXMch+/1zYe02qmJCh
7/zw32Q336BXRk363bndMIm/tVT5LgomiPsRyIAqQQKBgQDTRCEbTw63gNDImNBf
vZZxKml+en1CutFEQUamxS5i84b2DAsdhLEYBf37zz1R24dA3E04MCEUm3i+HqOa
t9VEsmdz2o/ipcONTZXN6pfS/A8NTzEYrgw0LvXANCMkQgGh+EMHReIq4iKND1Jv
J8bnV2MR4slkrBwQN3FQdi5+xQKBgQDKDl4CDHVD/yDmB6xUoGuX1RpJNa77d88M
9NrHfm3gZtSVKS00TxFBZ9ia62fmGMXhF6k94OWffTgwdbcRRqSODOIeIC4OWjdH
d7ml7VdQnATvE89AfUXpXSe/lHPD49LDtibiGvchSjebD8M6Q7lts4U7sfW0MkT8
8Y668/Y+BwKBgHoYLpXsu5GblY3Imuwp0i72lt8shQWyl8w9eUpaPHOdUAsUbLwT
epFqrR0A6OxM1b7LUqk9T3DsZPxjEqQQx+UawaT31B3lNL2N8ByADlw1pbFIahRc
SdtCpG3+86w5pV3o7zvdzFaCN/uTtk1dDJuYKj4k9cUDnnhUwl0A3+ANAoGAchVY
mNmF4GWNorOUZpfJCApHdCx+ZveHjS421MqaqUgGIU4FevJlsMM8doQRvsYf++6L
HSf9HmbqMdpVCckUIiw+A3px5qKjcZO02229jgL5ei96JlRVA+UYC0B7eJAKsXwI
SkOlY0NvT/q/ZQdWDA1/XWwmaZ60ewi8aOxUDUMCgYB1NeiVd8d6gXpa5qqj67Qg
2C2rerHH4vZxWpw1kvdTK/TQ37R/Vk13nnkWmtQDc9qK8ay47d4AdPgRdPQjPvrT
prPj22QatspA0E11+zZ2KcYESZtTRbXGuhc/NRBudeySJyfo3cYAkmA61xxIVyPB
JE8Fs6XJUJnNz2lgMffrKQ==
-----END PRIVATE KEY-----
3、PKCS8格式私钥转换为PKCS1(传统私钥格式)
# openssl rsa -in pkcs8.pem -out pkcs1.pem
writing RSA key
pkcs1.pem文件内容如下:
cat pkcs1.pem
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEApr+dbhDYMKV9JbsezuZ2j+CJtl5Ww34K253FX6BRuQNxnaQd
UnXvDIEdyd96f58/xwTcSi9U9lzJgQ7ROCXLm7fcZ1DNGPNYcQfFBjNFy34mDdEF
GRbn6+bOahb/NCpI9lC8dkwoCTfiq58r+VzFlR+X/Jq0g5J4Uyi24EO9KL1dfwrk
mgdaCau6/gATom+2UYyIMmzgdZ2rrJoALWjv/cIducsBTfgS+oTV30bmoMMg1EWh
fQzbPG1Axqej1K0LJroxFF5VFsfx57ggxwyhbWxbXiYmbckD5QayRd5WDsO8T9ZU
Ab2Z/Tn6Mn3OnsLwgWBq4nij2W8OA6n3TkctYwIDAQABAoIBADMxMIvR8A0/QSSM
RfEPH+cb8Ctk2w45a+vwi9/HwE8kl4TmFXpzamhUW2jWiy0THulivJ6p2VOpONO+
UM0EDXZJBAlT7SNz0fshf4NfylWm7NfhC8egGKN7wHMhjEffk3bLYpCO4NuzpIs7
2qw7pw0ZHfgXJsQd+4LMRRikszYGLgF/CDRQ8H0n+RPceSrw4P0GYtOaNDaMwXEN
ov48L+QaYXEB9411YPmnpQsB+DZKI22J4LLRUMLP1gxLROsl3nMjSDT94Lx/TCp8
KFtgmnkdIEvKVzHIfv9c2HtNqpiQoe/88N9kN9+gV0ZN+t253TCJv7VU+S4KJoj7
EciAKkECgYEA00QhG08Ot4DQyJjQX72WcSppfnp9QrrRREFGpsUuYvOG9gwLHYSx
GAX9+889UduHQNxNODAhFJt4vh6jmrfVRLJnc9qP4qXDjU2VzeqX0vwPDU8xGK4M
NC71wDQjJEIBofhDB0XiKuIijQ9SbyfG51djEeLJZKwcEDdxUHYufsUCgYEAyg5e
Agx1Q/8g5gesVKBrl9UaSTWu+3fPDPTax35t4GbUlSktNE8RQWfYmutn5hjF4Rep
PeDln304MHW3EUakjgziHiAuDlo3R3e5pe1XUJwE7xPPQH1F6V0nv5Rzw+PSw7Ym
4hr3IUo3mw/DOkO5bbOFO7H1tDJE/PGOuvP2PgcCgYB6GC6V7LuRm5WNyJrsKdIu
9pbfLIUFspfMPXlKWjxznVALFGy8E3qRaq0dAOjsTNW+y1KpPU9w7GT8YxKkEMfl
GsGk99Qd5TS9jfAcgA5cNaWxSGoUXEnbQqRt/vOsOaVd6O873cxWgjf7k7ZNXQyb
mCo+JPXFA554VMJdAN/gDQKBgHIVWJjZheBljaKzlGaXyQgKR3Qsfmb3h40uNtTK
mqlIBiFOBXryZbDDPHaEEb7GH/vuix0n/R5m6jHaVQnJFCIsPgN6ceaio3GTtNtt
vY4C+XoveiZUVQPlGAtAe3iQCrF8CEpDpWNDb0/6v2UHVgwNf11sJmmetHsIvGjs
VA1DAoGAdTXolXfHeoF6Wuaqo+u0INgtq3qxx+L2cVqcNZL3Uyv00N+0f1ZNd555
FprUA3PaivGsuO3eAHT4EXT0Iz7606az49tkGrbKQNBNdfs2dinGBEmbU0W1xroX
PzUQbnXskicn6N3GAJJgOtccSFcjwSRPBbOlyVCZzc9pYDH36yk=
-----END RSA PRIVATE KEY-----
4、生成自签名证书
# openssl req -x509 -newkey rsa:2048 -keyout privatekey.pem -out publickey.pem -days 99999 -nodes
Generating a RSA private key
............................+++++
...............+++++
writing new private key to 'privatekey.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing
Locality Name (eg, city) [Default City]:Beijing
Organization Name (eg, company) [Default Company Ltd]:aqwu.net
Organizational Unit Name (eg, section) []:aqwu.net
Common Name (eg, your name or your server's hostname) []:aqwu.net
Email Address []:support@aqwu.net
显示 privatekey.pem 内容
# cat privatekey.pem
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDUzggyx69cTG2n
3itcnWMYY1JSGd+kQ4eNrQKyHu5nIXfsca4qAOqfucX+qTzMsXGgiYcXpgAHTwIl
HHAkFnBZSTPhv9761OfILvdyvjkhE3D0AUbI/6mU/LYFxA6NxG4/ljev3MxY8wcV
TRLLPIjbLaPxKnoZZ3YPI/Z4IXNsoEScEUJeEzpIjkuNU1Bf6r/1WzAAdHKnaaks
Kk3WwJcZJyIPwX5NgM5unMUkIqx4ri0v8g+ONI3VSjne3E/NCqpp7dNqvMDqakF6
YOrMZZ1PJmBz+Y7qKLq8sWjQATeKqdqxPcveItTXaXaJiKamVRAq5pyzWCIpr+bN
+yRM124LAgMBAAECggEBAMosf992lOS0e81rJnkT0cyet9vmVvGhcowoHZKKDmcO
hfetvRCM1FsxTKj3shqqTlB9uEnAXPCUoG4PiX7PjqdVA6Rq/HYDhb1K2a46iN4i
sUIwYEaflkZEnM33iPgo8bEZjwhWVhH/ufADzGInvcG1p7Z8a4ntIF2cBhH1fcpo
8MaoTRUL0NCzVCIjVFPlcJj+3rx6i5FSIYuHWgk3CdOBqrVY6UbqT34irbJYoPnE
Ypz5Vqxj41By1b81PlK6PY47n0VjaK3NWUL8Xc1zsKBNIs5h56nm13+ft5VAtb26
S3biarwfSs07wPCt5dieRoz9dOoTPMAGeKpB6Fwh8NECgYEA+IkQKmTRHMrHzaP4
ILHTb9du9NIZj1jHKYxqn35ZEs6z2VneJHBYJpBXIDDacOIBK2LJWUNNMku/ggLp
RxJBo4Rj4VQuKXSM6RCiGaw21wEEyQcTmSeIXSN5NW4M9XvUNZZ9LXxkkSmSsGrH
1QaLEGpCbtjEx4UdkMZYr5inm4MCgYEA2zI+a0oeAwsecptbfy9ZHe/uxfMwJdIo
Vu/miZCX0txwRgFIrbqOruWxWSDcptNR/tK44u/3IoyauUxNf89FYHH1CcdwYBKC
BtNMt41ntR92Jml8ohgjIQdcJcLUio9Yptr1G9ts91hfhlO3G/WpytCOqNElqFSO
Fw2/BUq6NNkCgYEA2lVmaye4AIgvsHq8TtSJP3ZNViuAIsrF470kKcsQKxKFMord
OLus5OvmbjQcohAZIOkeoxkZpvaeXXN7RWFHYoO6Tsfp6acm5tQi41TDtGuDrapW
0DPHerLgF0z/e2R2D0GN5DikDFYuNGcJ+B1Qa3I9vC0X6YMKbxWf8Vq020sCgYB8
PTw336inHPRDDV+M9S9T0pzJwg82QKnwrMVEj5oeQCe65htlrOoWo8YjuIaYYAqH
nrSAnHa9NGi2QlNi7/5ore6vfkVpjtP4PmerWhDADncPSpcD4R54KA3IsWd6qckb
udtX0MUwZPyvzF9rD5EPjapucS0g/dwToQz2WOa18QKBgEknuoKPeykoIQuuP8+p
d/yedt6lW7aNvdwdjhxfm1/pe3udXXcrABBhjA3S7NBW09k29YJ+eCFhx9TRG/A6
cyTb2JAqEJ++JQSfkzPJkOk4PUUFgT89eQgVE15hNvpBJb2S+VQXEX8vnbWPtTTB
wyjzzaxVGobHeZ+MpwAO03c5
-----END PRIVATE KEY-----
显示 publickey.pem 内容
# cat publickey.pem
-----BEGIN CERTIFICATE-----
MIID+zCCAuOgAwIBAgIUCq+AqxgwC97wRDgqNnrvbOANswQwDQYJKoZIhvcNAQEL
BQAwgYsxCzAJBgNVBAYTAkNOMRAwDgYDVQQIDAdCZWlqaW5nMRAwDgYDVQQHDAdC
ZWlqaW5nMREwDwYDVQQKDAhhcXd1Lm5ldDERMA8GA1UECwwIYXF3dS5uZXQxETAP
BgNVBAMMCGFxd3UubmV0MR8wHQYJKoZIhvcNAQkBFhBzdXBwb3J0QGFxd3UubmV0
MCAXDTIyMTEyMTEwMjczN1oYDzIyOTYwOTA0MTAyNzM3WjCBizELMAkGA1UEBhMC
Q04xEDAOBgNVBAgMB0JlaWppbmcxEDAOBgNVBAcMB0JlaWppbmcxETAPBgNVBAoM
CGFxd3UubmV0MREwDwYDVQQLDAhhcXd1Lm5ldDERMA8GA1UEAwwIYXF3dS5uZXQx
HzAdBgkqhkiG9w0BCQEWEHN1cHBvcnRAYXF3dS5uZXQwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQDUzggyx69cTG2n3itcnWMYY1JSGd+kQ4eNrQKyHu5n
IXfsca4qAOqfucX+qTzMsXGgiYcXpgAHTwIlHHAkFnBZSTPhv9761OfILvdyvjkh
E3D0AUbI/6mU/LYFxA6NxG4/ljev3MxY8wcVTRLLPIjbLaPxKnoZZ3YPI/Z4IXNs
oEScEUJeEzpIjkuNU1Bf6r/1WzAAdHKnaaksKk3WwJcZJyIPwX5NgM5unMUkIqx4
ri0v8g+ONI3VSjne3E/NCqpp7dNqvMDqakF6YOrMZZ1PJmBz+Y7qKLq8sWjQATeK
qdqxPcveItTXaXaJiKamVRAq5pyzWCIpr+bN+yRM124LAgMBAAGjUzBRMB0GA1Ud
DgQWBBQuOdzBzuHeuIoNllhqyqIQPyjQODAfBgNVHSMEGDAWgBQuOdzBzuHeuIoN
llhqyqIQPyjQODAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB2
ohECjyzZZNWYxBO1qFFmc6jDgSDRirZJnbwEO1UOXZ223NTdvFhjIkx6n8RAb14H
cbRzJzgkHJvBiTkwSnMzcIkJGs16h2H5ZmXyUK3tnvribi3kIKa8tVL119J1MxkO
8l9/mk6Hc3dTYoxwjb5nlFZxj5E1X/5he9XrZ8ms8lIXChFmFLtk1W23+MPE7iVE
6HOsUZzCyJwADanRl0tbBmen5rBhbTVDkFB70IYnnQmTTXAd+HE5PTI2vQYE8mZN
DY8XMg6XC+S2L6ytj1l/DrxKAOEJgi7/0DhvFRhhH3rXgUL7gcibZ8pfN4r23QId
g8DZOZJqKcizWkziVzeN
-----END CERTIFICATE-----
5、计算文件md5值
# openssl md5 pkcs1.pem
MD5(pkcs1.pem)= e935f6f3d17569bea7eafc979ef7deae
6、计算文件sha1值
# openssl sha1 pkcs1.pem
SHA1(pkcs1.pem)= bed2d51c2de51b8ee6ae8524fe9bb53dd0bee2e6
7、计算文件sha256值
# openssl sha256 pkcs1.pem
SHA256(pkcs1.pem)= 77bda6152892c2df3e9774fe84462aad6dff2a4161fa4acb9bd64a3aa5bf4f3a
8、计算文件sha512值
# openssl sha512 pkcs1.pem
SHA512(pkcs1.pem)= fbbce7cae85eae9983c15854bc16ea2b765961ae1f5841307942b1111c9cfc238eb773efac6b7f09cad69eff722b134f5ac048ca38317192a1ee4404e846868e
9、openssl 帮助
# openssl help
Standard commands
asn1parse ca ciphers cms
crl crl2pkcs7 dgst dhparam
dsa dsaparam ec ecparam
enc engine errstr gendsa
genpkey genrsa help list
nseq ocsp passwd pkcs12
pkcs7 pkcs8 pkey pkeyparam
pkeyutl prime rand rehash
req rsa rsautl s_client
s_server s_time sess_id smime
speed spkac srp storeutl
ts verify version x509
Message Digest commands (see the `dgst' command for more details)
blake2b512 blake2s256 gost md2
md4 md5 rmd160 sha1
sha224 sha256 sha3-224 sha3-256
sha3-384 sha3-512 sha384 sha512
sha512-224 sha512-256 shake128 shake256
sm3
Cipher commands (see the `enc' command for more details)
aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb
aes-256-cbc aes-256-ecb aria-128-cbc aria-128-cfb
aria-128-cfb1 aria-128-cfb8 aria-128-ctr aria-128-ecb
aria-128-ofb aria-192-cbc aria-192-cfb aria-192-cfb1
aria-192-cfb8 aria-192-ctr aria-192-ecb aria-192-ofb
aria-256-cbc aria-256-cfb aria-256-cfb1 aria-256-cfb8
aria-256-ctr aria-256-ecb aria-256-ofb base64
bf bf-cbc bf-cfb bf-ecb
bf-ofb camellia-128-cbc camellia-128-ecb camellia-192-cbc
camellia-192-ecb camellia-256-cbc camellia-256-ecb cast
cast-cbc cast5-cbc cast5-cfb cast5-ecb
cast5-ofb des des-cbc des-cfb
des-ecb des-ede des-ede-cbc des-ede-cfb
des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb
des-ede3-ofb des-ofb des3 desx
idea idea-cbc idea-cfb idea-ecb
idea-ofb rc2 rc2-40-cbc rc2-64-cbc
rc2-cbc rc2-cfb rc2-ecb rc2-ofb
rc4 rc4-40 rc5 rc5-cbc
rc5-cfb rc5-ecb rc5-ofb seed
seed-cbc seed-cfb seed-ecb seed-ofb
zlib