openssl 命令行工具:
众多的子命令实现各种安全加密功能;
标准命令:
enc,dgst,ca,req,genrsa,rand,rsa,x509,passwd,...
对称加密命令: enc
提供对称加密算法, 以进行数据或文件的手动加密;
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]
-ciphername: 加密算法的名称
-in filename:opensll 要读取的文件路径;
-out filename: 加密或解密操作后用于保存结果的文件路径;
-e: 加密操作
-d: 解密操作
-a/-base64: 用纯文本格式进行密文编码;
-salt: 随机加盐
示例:
加密文件:
~]# openssl enc -e -des3 -in anaconda-ks.cfg -a -out anconda-ks.cfg.encryptfile
解密文件:
~]# openssl enc -d -des3 -in anconda-ks.cfg.encryptfile -a -out anaconda-ks.cfg.plaintext
单向加密: dgst
~]# openssl dgst -sha1 /etc/fstab
生成随机数命令: rand
openssl rand [-out file] [-rand file(s)] [-base64] [-hex] num
示例:
~]# openssl rand -base64 8
生成带盐的密码: passwd
openssl passwd -1 -salt SALT_STRING
示例:
~]# openssl passwd -1 -salt 01234567
公钥加密算法: genrsa
生成 rsa 算法的私钥:
openssl genrsa [-out filename] [-des] [-des3] [-idea] [-f4] [-3] [-rand file(s)] [-engine id] [numbits]
处于安全考虑, 需要给创建的私钥赋予只有拥有者才能读写其他任何人都不能读写的权限; 建议使用下列方法生成私钥:
- ~]# (umask 077 ; openssl genrsa -out /tmp/my.key 4096)
- ~]# (umask 077 ; openssl genrsa> /tmp/my.key 4096)
从已经生成的私钥文件中读取公钥: rsa
openssl rsa [-in filename] [-out filename] [-pubout]
-pubout: 抽取公钥
-in filename: 私钥文件的路径
-out filename: 公钥文件的路径
~]# openssl rsa -in my.key -out my.key.pub -pubout
利用 openssl 建立私有 CA:
1. 创建 CA 所在主机的私有文件;
2. 生成自签证书;
3. 必须为 CA 提供必要的目录级文件及文本级文件;
目录级文件:
- /etc/pki/CA/certs
- /etc/pki/CA/crl
- /etc/pki/CA/newcerts
文本级文件:
/etc/pki/CA/serial: 保存证书序列号, 一般初始序列号啊为 01;
/etc/pki/CA/index.txt: 证书索引;
/etc/pki/tls/openssl.cnf: 配置文件;
创建私有 CA 的步骤:
1. 创建 CA 的私钥文件:
(umask 077 ; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
2. 生成自签证书:
- openssl req
- openssl req [-out filename] [-new] [-x509] [-days n] [-key filename]
3. 完善目录及文本文件结构:
- touch /etc/pki/CA/index.txt
- echo 01> /etc/pki/CA/serial
在 CA 上查看证书的内容:
openssl x509 -in /etc/pki/CA/cacert.perm -noout -serial -subject
吊销证书: 必须在 CA 上执行:
1. 获取客户端证书对应的序列号
openssl x509 -in /etc/pki/CA/certificate -noout -serial
2. 吊销证书:
openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
注意: 上述命令中的 "SERIAL" 要换成准备吊销的证书的序列号;
3. 生成吊销证书的吊销索引文件; 仅需要第一次吊销证书时执行此操作;
echo "SERIAL"> /etc/pki/CA/crl/crlnumber
4. 更新证书吊销列表:
openssl ca -genctl -out /etc/pki/CA/crl/ca.crl
5. 查看 CRL:
openssl crl -in /etc/pki/CA/crl/ca.crl -noout -text
来源: http://www.bubuko.com/infodetail-2550567.html