openssl命令用法
openssl命令
配置文件:/etc/pki/tls/openssl.cnf
命令格式:
openssl command [ command_opts ] [ command_args ]
众多子命令,常用有以下几项:
1.对称加密
openssl enc -[e/d] [-a] [-salt] -Cipher -in /PATH/TO/SOMEFILE -out /PATH/TO/SOMEFILE
-e:加密
-d:解密
-a:将数据变为base64编码
-salt:添加随机数
-Cipher:加密的算法
示例:
openssl enc -e -a -des3 -in test.txt -out test3.txt //加密test.txt
openssl enc -d -a -des3 -in test3.txt -out test1.txt //解密test3.txt
2.单向加密
openssl dgst -Cipher /PATH/TO/SOMEFILE
示例:
openssl dgst -md5 test.txt MD5(test.txt)= 83c16453b40e59f283211be8fa57d990 //加密结果
3.公钥加密
①生成私钥
(umask 077;openssl genrsa -out /PATH/TO/SOMEFILE NUM_BITS(位数,只能是2的倍数))
示例:
(umask 077;openssl genrsa -out test.key 1024)
②提取公钥
openssl rsa -in /PATH/TO/SOMEFILE -pubout
4.加密用户密码
openssl passwd -1 -salt PASSWORD
5.生成随机数
openssl rand -base64/-hex(16进制数字) NUM(字节数)
如何构建私有CA
1.在服务器主机生成证书
①生成私钥
(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 1024)
②生成证书
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365
③为证书提供所需的目录和文件
mkdir -pv /etc/pki/CA/{certs,ctl,newcerts} touch /etc/pki/CA/{serial,index.txt} echo 01 > /etc/pki/CA/serial //将序列号写入此文件
2.在客户端生成证书签署请求
①客户端主机生成私钥
(umask 077;openssl genrsa -out /root/mykey.key 1024)
②生成证书签署请求
openssl req -new -key /root/mykey.key -out /root/mykey.csr -days 365
③将证书签署请求通过可靠的方式发给CA主机
scp /root/mykey.csr root@192.168.1.1:/root
④在CA主机上签署证书
openssl ca -in /root/mykey.csr -out /root/mykey.crt -days 365
⑤将签好的证书再次发给请求签证的客户端即可
查看证书信息命令:openssl x509 -in /root/mykey.crt -noout -serial -subject