openssl与keytool工具使用手册

来源:互联网 发布:淘宝助理外链图片 编辑:程序博客网 时间:2024/06/05 05:39

1 DSA应用

1.1. 生成DSA参数集

        生成1024DSA参数集,并输出到文件dsaparam.pem

        $ openssl dsaparam -out dsaparam.pem 1024

1.2. 生成私钥

        使用参数文件dsaparam.pem生成DSA私钥匙,采用3DES加密后输出到文件dsaprivatekey.pem

        $ openssl gendsa -out dsaprivatekey.pem -des3 dsaparam.pem

1.3. 生成公钥

        使用私钥匙dsaprivatekey.pem生成公钥匙,输出到dsapublickey.pem

        $ openssl dsa -in dsaprivatekey.pem -pubout -out dsapublickey.pem

1.4. 修改密码

        从dsaprivatekey.pem中读取私钥匙,解密并输入新口令进行加密,然后写回文件dsaprivatekey.pem

        $ openssl dsa -in dsaprivatekey.pem -out dsaprivatekey.pem -des3 -passin

2 RSA应用

2.1. 生成私钥

        产生1024RSA私匙,用3DES加密它,口令为trousers,输出到文件rsaprivatekey.pem

        $openssl genrsa -out rsaprivatekey.pem -passout pass:trousers -des3 1024

2.2. 生成公钥

        从文件rsaprivatekey.pem读取私匙,用口令trousers解密,生成的公钥匙输出到文件rsapublickey.pem

        $openssl rsa -in rsaprivatekey.pem -passin pass:trousers -pubout -out rsapublickey.pem

2.3. 加密文件

        用公钥匙rsapublickey.pem加密文件plain.txt加密文件的内容有长度的限制。输出到文件cipher.txt

        $openssl rsautl -encrypt -pubin -inkey rsapublickey.pem -in plain.txt -out cipher.txt

2.4. 解密文件

        使用私钥匙rsaprivatekey.pem解密密文cipher.txt,输出到文件plain.txt

        $openssl rsautl -decrypt -inkey rsaprivatekey.pem -in cipher.txt -out plain.txt

2.5. 签名文件

        用私钥匙rsaprivatekey.pem给文件plain.txt签名,输出到文件signature.bin

        $openssl rsautl -sign -inkey rsaprivatekey.pem -in plain.txt -out signature.bin

2.6. 验证签名

        用公钥匙rsapublickey.pem验证签名signature.bin,输出到文件plain.txt

        $openssl rsautl -verify -pubin -inkey rsapublickey.pem -in signature.bin -out plain.txt

2.7. 私钥签名

        openssl dgst -sign rsaprivatekey.pem -sha1 -out a.sign plain.txt

2.8. 公钥验证

        openssl dgst -verify rsapublickey.pem -sha1 -signature a.sign plain.txt

3 对称加密应用

        1. 使用aes-128-cbc算法加密文件

        openssl enc -aes-128-cbc -in install.log -out enc.log

        2. 解密文件

        openssl enc -d -aes-128-cbc -in enc.log -out install.log

        3.加密文件后使用BASE64格式进行编码

        openssl enc -aes-128-cbc -in install.log -out enc.log -a

4 消息摘要应用

4.1. 计算哈希值1

        用SHA1算法计算文件file.txt的哈西值,输出到stdout

        $openssl dgst -sha1 file.txt

4.2. 计算哈希值2

        用SHA1算法计算文件file.txt的哈西值,输出到文件digest.txt

        $ openssl sha1 -out digest.txt file.txt

4.3. DSA签名

        用DSS1(SHA1)算法为文件file.txt签名,输出到文件dsasign.bin,签名的private key必须为DSA算法产生的,保存在文件dsakey.pem

        $ openssl dgst -dss1 -sign dsakey.pem -out dsasign.bin file.txt

4.4. DSA验证

        用dss1算法验证file.txt的数字签名dsasign.bin,验证的private keyDSA算法产生的文件dsakey.pem

        $ openssl dgst -dss1 -prverify dsakey.pem -signature dsasign.bin file.txt

4.5. RSA签名

        用sha1算法为文件file.txt签名,输出到文件rsasign.bin,签名的private keyRSA算法产生的文件rsaprivate.pem

        $ openssl sha1 -sign rsaprivate.pem -out rsasign.bin file.txt

4.6. RSA验证

        用sha1算法验证file.txt的数字签名rsasign.bin,验证的public keyRSA算法生成的rsapublic.pem

        $ openssl sha1 -verify rsapublic.pem -signature rsasign.bin file.txt

5 证书制作

5.1. 生成根证书

        openssl req -new -x509 -keyout ca.key -out ca.crt

5.2. 生成私钥

        openssl genrsa -des3 -out server.key 1024

5.3. 生成证书

        openssl req -new -key server.key -out server.csr

5.4. 签名证书

        拷贝一份openssl.cnf文件至终端的工作目录下,修改文件中的dir路径为终端的工作目录(如:E:/openssl),并创建其他目录(E:/openssl/newcerts)、创建index.txtserial文件,向serial文件中写入内容01

        openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

5.5. 验证证书

        openssl verify -CAfile ca.crt server.crt

6 证书格式转换

6.1. x509转换为pfx

        openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt

6.2. 从PKCS#12导出私钥

        openssl pkcs12 -nocerts -nodes -in cert.p12 -out private.pem

6.3. PKCS#12到PEM 的转换

        openssl pkcs12 -clcerts -nokeys -in cert.p12 -out cert.pem

6.4. 从 PFX 格式文件中提取私钥格式文件 (.key)

        openssl pkcs12 -in mycert.pfx -nocerts -nodes -out mycert.key

6.5. PEM 到 PKCS#12 的转换

        openssl pkcs12 -export -in Cert.pem -out Cert.p12 -inkey key.pem

7 Keytool工具

7.1. 生成证书

        创建一个别名为test1的证书条目,该条目存放在名为test.keystore的密钥库中,若test.keystore密钥库不存在则创建。

        keytool -genkeypair -alias "test1" -keyalg "RSA" -keystore "test.keystore"

7.2. 查看密钥库

        keytool -list -keystore test.keystore  

7.3. 导出证书

        将名为test.keystore密钥库中别名为test1的证书条目导出到证书文件test.crt

        keytool -export -alias test1 -file test.crt -keystore test.keystore  

7.4. 导入证书

        将证书文件test.crt导入到名为test.keystore密钥库中。

        keytool -import -keystore test.keystore -file test.crt

7.5. 查看证书信息

        keytool -printcert -file "test.crt"

7.6. 删除条目

        keytool -delete -keystore test.keystore -alias test1

7.7. 修改条目口令

        keytool -keypasswd -alias test1 -keystore test.keystore

        或者 

        keytool -keypasswd -alias test1 -keypass passOld -new passNew -storepass testtest -keystore test.keystore  

 

 

 


0 0