openssl基本¶
命令:
1.Standard commands
asn1parse ca certhash ciphers
crl crl2pkcs7 dgst dh
dhparam dsa dsaparam ec
ecparam enc engine errstr
gendh gendsa genpkey genrsa
nseq ocsp passwd pkcs12
pkcs7 pkcs8 pkey pkeyparam
pkeyutl prime rand req
rsa rsautl s_client s_server
s_time sess_id smime speed
spkac ts verify version
x509
// 非对称:
2.Message Digest commands (see the `dgst' command for more details)
gost-mac md4 md5 md_gost94
ripemd160 sha sha1 sha224
sha256 sha384 sha512 streebog256
streebog512 whirlpool
// 对 称:
3.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 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
chacha 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
rc2 rc2-40-cbc rc2-64-cbc rc2-cbc
rc2-cfb rc2-ecb rc2-ofb rc4
rc4-40
简单使用:
// 生成服务器端的私钥(运行时会提示输入密码,此密码用于加密key文件)
openssl genrsa -des3 -out zhaoweiguo.com.key 1024
// 生成Certificate Signing Request(CSR)
// 生成的csr文件交给CA签名后形成服务端自己的证书
//屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可
openssl req -new -key zhaoweiguo.com.key -out zhaoweiguo.com.csr
1.使用OpenSSL工具生成CSR文件:
//1.1生成csr文件和私钥key文件
openssl req -new -nodes -sha256 -newkey rsa:2048 -keyout myprivate.key -out mydomain.csr
//参数
-new 指定生成一个新的CSR
-nodes指定私钥文件不被加密
-sha256指定摘要算法
-keyout生成私钥
-newkey rsa:2048 指定私钥类型和长度,最终生成CSR文件mydomain.csr
//生成文件
mydomain.csr myprivate.key
//1.2生成证书文件crt
openssl x509 -req -days 365 -in <csr>.csr -signkey <key>.key -out <newcrt>.crt
2.使用keytool工具生成CSR文件:
//2.1先生成证书文件keystore, 证书文件中包含密钥
keytool -genkey -alias mycert -keyalg RSA -keysize 2048 -keystore ./mydomain.jks
keyalg是密钥类型,必须是RSA
keysize是密钥长度为2048
alias 是证书别名可自定义
keystore是证书文件保存路径
//2.2通过证书文件生成证书请求
keytool -certreq -sigalg SHA256withRSA -alias mycert -keystore ./mydomain.jks -file ./mydomain.csr
sigalg是摘要算法,使用SHA256withRSA
alias是别名,必须与2.1步中的别名一致
keystore是证书文件
file是证书请求文件(CSR)
而后提示输入证书密码即可以生成mydomain.csr
去除key文件口令的命令:
openssl rsa -in <encryedprivate>.key -out <unencryed>.key
//扩展名为key或者pem均可
//如果一个私钥文件是如下样式(用文本编辑器打开后) ,则说明是带有密码的:
1.PKCS#8 私钥加密格式
-----BEGIN ENCRYPTED PRIVATE KEY-----
BASE64私钥内容......
-----END ENCRYPTED PRIVATE KEY-----
2.Openssl ASN格式
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info:DES-EDE3-CBC,4D5D1AF13367D726
BASE64私钥内容......
-----END RSA PRIVATE KEY-----
私钥转非加密:
openssl rsa -in rsa_aes_private.key -passin pass:111111 -out rsa_private.key
私钥转加密:
openssl rsa -in rsa_private.key -aes256 -passout pass:111111 -out rsa_aes_private.key