一、OpenSSL简介
OpenSSL支持多种秘钥算法,包括RSA、DSA、ECDSA,RSA使用比较普遍。官网地址:https://www.openssl.org/,一般CeontOS系统都装有OpenSSL
二、秘钥操作
生成RSA私钥。-out private.key 输出秘钥文件为private.key;128 为秘钥大小,目前认为2048大小是比较安全的,本文测试使用128大小。
openssl genrsa -out private.pem 128
生成的私钥样式为:
-----BEGIN RSA PRIVATE KEY----- MGMCAQACEQDS52MK0Nw1QIfRfSaTOhdnAgMBAAECEQCV/r6v6I9Uxv/J3tc5onvB AgkA6o1Gly9yqVECCQDmMIZkMe6HNwIIaKE68yhMWvECCBXOAuz6zd2BAgkAlR9Y VQCWm2A= -----END RSA PRIVATE KEY-----
生成带密码的RSA私钥。-aes256,指定密码加密方式,
openssl genrsa -aes256 -passout pass:1234 -out private.pem 128
生成的私钥样式为:
-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: AES-256-CBC,B15639107691B98267AD45CF619539BB Xf7uNMPFE3pdc0T5hmrZWaU5GmK/Jaf7B8oF4pmeTWAJ7SvGvQKxeFBecE1ROn6z xIuSkHI9SwsdTlwNJmvYzGLwLwHNwXGc/cJF0EISlsBYTE/v2C12tj9E5VGKiTeH DRuIEhyaypqMp5+Ceyi61A== -----END RSA PRIVATE KEY-----
私钥加密
openssl rsa -in private.pem -aes256 -passout pass:1234 -out enc_private.pem
私钥去取加密
openssl rsa -in enc_private.pem -passin pass:1234 -out private.pem
生成公钥, 如果私钥private.pem有密码,生成公钥时会提示需要输入密码。
openssl rsa -in private.pem -pubout -out public.pem
公钥样式:
-----BEGIN PUBLIC KEY----- MCwwDQYJKoZIhvcNAQEBBQADGwAwGAIRANGuQHQ1P4GTgcQwHdS4nIcCAwEAAQ== -----END PUBLIC KEY-----
三、生成自签名证书
使用已有的私钥创建自签名证书
openssl req -new -key private.pem -out cert.crt -subj "/C=CN/ST=hubei/L=SZ/O=test/OU=test/CN=test.com"
-subj拥有者信息,CN:姓名;OU:组织单位名称;O:组织名称;L:省/市/自治区名称;C:国家/地区代码