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 -signkey .key -out .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 .key -out .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