openssl

Openssl ? 查看命令

Whatis  <command> 查看命令有什么用处

Man enc

 

 

Openssl:

从多子命令,分为三类:

标准命令

信息摘要命令(dgst子命令)

加密命令(enc子命令)

 

对称加密:

工具: openssl enc gpg

支持的算法: des3 3des aes....

 

 

enc命令:

加密:  openssl enc -e des3 -a -salt -in 从哪里获取 -out 保存为

]# openssl enc -e -des3 -a -salt -in passwd -out pss.txt

 

解密: openssl enc -d des3 -a -salt -in     -out    

]# openssl enc -d -des3 -a -salt -in pss.txt -out passwd

 

 

单项加密:

工具: openssl dgst,md5sum.sha1sum,sha224sum

dgst命令:

]# openssl dgst -md5 passwd

MD5(passwd)= 141aa3b65bc687ef1ba273a8f0b8d87a

]# md5sum passwd

141aa3b65bc687ef1ba273a8f0b8d87a  passwd

#两个效果一样

 

生成用户密码:

工具: passwd, openssl passwd

]# whatis passwd

passwd (1)           - update user's authentication tokens

sslpasswd (1ssl)     - compute password hashes

]# man sslpasswd

 

]# openssl passwd -1 -salt 123 #加密

 

生成随机数密码

工具: openssl rand

]# whatis rand

]# man sslrand

 

]# openssl rand -base64 NUM

]# openssl rand -hex NUM      每次的密码都不一样

 

公钥加密:

加密解密:

算法: RSA, ELGamal

工具: openssl rsautl,gpg

数字签名:

算法: RSA, DSA, ELGamal

工具: 和上面一样

密钥交换:

算法: DH

 

生成密钥:

生成公钥: ]# (umask 077;openssl genrsa 2048 > ./k.private)

提取公钥:  ]# openssl rsa -in ./k.private -pubout

 

Linux系统上的随机数生成器:

/dev/rabdom 仅从内存返回随机数,随机数用尽,阻塞;

/dev/urandom 从内存返回随机数,随机数用尽,会利用软件生成伪随机数,非阻塞

伪随机数不安全;

 

CA:

公共信任的CA,私有CA

建立私有CA:

openssl

openCA

Openssl命令:

配置文件: ]# ls /etc/pki/tls/openssl.cnf

构建私有CA:

在确定配置为CA的服务器上生成一个自签证书,并为CA提供所需的目录及文件即可;

 

步骤:

1)生成私钥:

]# (umask 077;openssl genrsa 4096 > /etc/pki/CA/private/cakey.pem)

2)生成自签证书:

]# man req

]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655

-new: 生成新证书签署请求

-509: 生成自签格式证书,专用于创建私有CA时;

-key: 生成请求时用到的私有文件路径

-out: 生成的请求文件路径;如果自签操作将直接生成签署过的证书;

-days: 证书的有效时长,单位是天

3)为CA提供所需的目录及文件;

]# mkdir -pv /etc/pki/CA/{certs,crl,newcerts} #如果默认没有的话就自建

]# touch /etc/pki/CA/{serial,index.txt}

]# echo 01 > /etc/pki/CA/serial

 

要用到证书进行安全通信的服务器,需要向CA请求签署证书:

步骤: (以httpd为例)

1)用到证书的主机生成证书签署请求;

① ]# mkdir /etc/httpd/ssl

② ]# cd /etc/httpd/ssl

③ ]#(umask 077;openssl genrsa 2048 > /etc/httpd/ssl/httpd.key)

( 2 )生成证书签署请求

1) ]# openssl req -new -key /etc/httpd/ssl/httpd.key -out httpd.csr  -days 365

( 3 ) 将请求通过可靠方式发送给CA主机:

]# scp /etc/httpd/ssl/httpd.csr 139.9.43.223:/tmp/

( 4 ) 在CA主机上签署证书:

]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpds -days 365

查看证书中信息:

]# openssl x509 -in certs/httpd.crt -noout -serial -subject

 

吊销证书:

步骤(需要在CA主机上执行)

(1) 客户端获取要吊销的证书的serial(在使用证书的主机执行);

]# openssl x509 -in certs/httpd.crt -noout -serial -subject

(2) CA主机吊销证书

先根据客户提交的serial和subject信息,对比其与本机数据库index.txt中存储的是否一致;

]# openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem

其中SERIAL要换成证书真正的序列号

(3) 生成吊销证书的吊销编号(第一次吊销证书时执行)

]# echo 01 > /etc/pki/CA/crlnumber

(4) 更新证书吊销列表

]# openssl ca -gencrl -out thisca.crl

查看crl文件

]# openss crl -in /PATH/FROM/CRL_FILE.crl -noout -text

 

posted @ 2019-10-14 21:07  w_zq  阅读(173)  评论(0编辑  收藏  举报