Openssl使用

对称加密

openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64]
[-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md]
[-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-engine id]
常用选项有:

-in filename:指定要加密的文件存放路径

-salt:自动插入一个随机数作为文件内容加密,默认选项

-out filename:指定加密后的文件存放路径

-e:可以指明一种加密算法,若不指的话将使用默认加密算法

-d:解密,解密时也可以指定算法,若不指定则使用默认算法,但一定要与加密时的算法一致

-a/-base64:使用-base64位编码格式

示例:
加密:]# openssl enc -e -des3 -a -salt -in fstab -out jiami
解密:]# openssl enc -d -des3 -a -salt -in fstab -out jiami
openssl enc -e -aes-256-cfb -a -S 1234 -in test.txt -out testout.txt -k 123
openssl enc -d -aes-256-cfb -a -S 1234 -in testout.txt -out testde.txt

生成秘钥对

首先需要先使用 genrsa 标准命令生成私钥,然后再使用 rsa 标准命令从私钥中提取公钥。

genrsa 的用法如下:

openssl genrsa [-out filename] [-passout arg] [-des] [-des3] [-idea] [-f4] [-3] [-rand file(s)] [-engine id] [numbits]
常用选项有:

-out filename:将生成的私钥保存至指定的文件中

-des|-des3|-idea:不同的加密算法

numbits:指定生成私钥的大小,默认是2048

一般情况下秘钥文件的权限一定要控制好,只能自己读写,因此可以使用 umask 命令设置生成的私钥权限,示例如下:

ras 的用法如下:

openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg]
[-sgckey] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-engine id]
常用选项:

-in filename:指明私钥文件

-out filename:指明将提取出的公钥保存至指定文件中

-pubout:根据私钥提取出公钥

示例如下:

实例

#创建根证书
cd /etc/pki/CA/
mkdir certs crl newcerts private
touch serial index.txt
echo 01 > serial
touch crlnumber
openssl genrsa -out private/cakey.pem 2048
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365

#生成私钥和请求文件
cd CA
openssl genrsa -out test.key 2048
openssl req -new -key test.key -out test.csr -days 365

#利用根证书颁发证书
cd /etc/pki/CA/
mkdir req
cp /root/CA/test.csr req/
openssl ca -in req/test.csr -out /etc/pki/CA/certs/test.crt -days 365
posted @ 2019-07-29 14:49  小翼君  阅读(228)  评论(0编辑  收藏  举报