openssl命令生成密钥对儿
man genrsa 帮助 使用 genrsa 子命令生成私钥
命令中选项:
-out 指定输出私钥的文件名 -des 指定使用 des 对称加密私钥文件,选填,也可以使用其他加密算法 1024 指定密钥长度
(umask 077; openssl genrsa –out test.key –des 2048) 在子shell中推导成公钥。
使用 rsa 子命令生成公钥
生成私钥
openssl rsa -in PRIVATEKEYFILE –pubout –out PUBLICKEYFILE openssl rsa –in test.key –pubout –out test.key.pub
openssl rsa -in test.key –out test2.key 将加密key解密
从私钥中提取出公钥
openssl rsa -in PRIVATEKEYFILE –pubout –out PUBLICKEYFILE openssl rsa –in test.key –pubout –out test.key.pub
OpenSSL
PKI
一个典型、完整、有效的PKI应用系统至少应具有以下部分:
RA:注册中心负责审核证书申请者的真实身份
CRL:黑名单的发布和管理
CA:即数字证书的申请及签发机关,CA必须具备权威性的特征
数字证书库:用于存储已签发的数字证书及公钥,用户可由此获得所需的其他用户的证书及公钥证书申请及签署步骤:
1、生成申请请求 2、RA核验 3、CA签署 4、获取证书
创建CA服务端
创建私有CA: openssl的配置文件:/etc/pki/tls/openssl.cnf 三种策略:匹配、支持和可选 匹配指要求申请填写的信息跟CA设置信息必须一致,支持指必须填写这项申 请信息,可选指可有可无
第一步;创建必要文件(在centos7上)
touch /etc/pki/CA/index.txt #创建index.txt
echo 01> /etc/pki/CA/serial #创建新证书编号为01,往下依次类推,为十六进制
第二步;生成私钥文件
cd /etc/pki/CA #切换目录
(umask 066;openssl genrsa –out /etc/pki/CA/private/cakey.pem1024) #生成1024位的私钥
()的使用为了使umask值只在当前代码行有效,而不改变系统umask值, CA私钥名必须为cakey.pem
也可以通过命令cat / etc/pki/CA/private/cakey.pem来查看是否生成了私钥。
第三步;生成自签文件,也就是让CA给自己颁发证书,注意都是在/etc/pki/CA目录下的工作
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650
-new: 生成新证书签署请求
-x509: 专用于CA 生成自签证书
-key: 生成请求时用到的私钥文件
-days n :证书的有效期限
以文本形式查看自签证书进行校验:
openssl x509 -in cacert.pem -noout -text
把cacert.pem文件导出放置到Windows界面中查看,注意要更改为.crt的后缀才能查看,到此CA服务端搭建完毕。
搭建CA客户端,申请证书(在centios6上)
在需要使用证书的主机生成证书请求给web 服务器生成私钥
第一步;创建私钥文件
cd /etc/pki/tls/private/
(umask 066;openssl genrsa -out /etc/pki/tls/private/test.key)
第二步;生成申请文件(注意:默认国家、省、公司三项必须跟CA一致)
openssl req -new -key /etc/pki/tls/private/test.key -out /etc/pki/tls/private/test.csr -days 365
把生成好的申请文件传至服务端CA。
第三步;回到服务端(centos7上),颁发证书
openssl ca -in /etc/pki/CA/test.csr -out /etc/pki/CA/certs/test.crt -days 365
把证书传回至客户端(centos6)
scp /etc/pki/CA/certs/test.crt 172.18.24.2:/etc/pki/CA/
可以把test.crt导出,查看证书效果
排错:
1 openssl ca -in web.csr -out web.crt //直接签发看错误提示
Using configuration from /etc/pki/tls/openssl.cnf Error opening CA private key /etc/pki/CA/private/cakey.pem
# openssl genrsa 1024 > /etc/pki/CA/private/cakey.pem //生成CA认证机构所需的私钥
2 openssl ca -in web.csr -out web.crt Using configuration from /etc/pki/tls/openssl.cnf Error opening CA certificate /etc/pki/CA/cacert.pem
# openssl req -new -key /etc/pki/CA/private/cakey.pem -days 365 -x509 -out /etc/pki/CA/cacert.pem //生成CA认证机构的自签名证书
吊销证书,在服务端进行(centos7)
指定第一个吊销证书的编号
注意:第一次更新证书吊销列表前,才需要执行echo 01 > /etc/pki/CA/crlnumber
第一步;创建必要文件,生成吊销证书的编号
echo 01 /etc/pki/CA/crlnumber
第二步,在客户端(centos6上)查找要吊销的证书以确保吊销正确
openssl x509 -in /etc/pki/CA/test.crt-noout -serial -subject
第三步;在服务端(centos7上)吊销证书
openssl ca -revoke /etc/pki/CA/newcerts/SERIAL .pem
第四步;更新证书吊销列表
openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem #注意crl.pem在Windows里面需要更改为crl的后缀才能查看
查看crl文件
openssl crl -in /etc/pki/CA/crl/crl.pem -noout-text #以文本形式查看吊销证书文件