设为首页 收藏本站
查看: 1145|回复: 0

[经验分享] openssl实现证书申请

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-9-26 08:53:25 | 显示全部楼层 |阅读模式
一.openssl
      openssl 由3部分组成:
           openssl: 多用途的命令行工具
           libcrypto: 加密算法库
           libssl:加密模块应用库,实现了ssl及tls
      openssl子命令:
      1. 对称加密工具:enc,gpg
           常用算法: 3des,aes,blowfish,twofish
            openssl enc:
                 加密: openssl enc -e -des3 -a-salt -in anaconda-ks.cfg -out anaconda-ks.cfg.des3        
wKiom1fnvoPy-kOgAABK-tua1sQ380.jpg
                 查看加密后的文件是乱码
                 解密:openssl enc -d -des3 -a-salt -in anaconda-ks.cfg.des3 -out anaconda-ks.cfg         wKiom1fnvp-yHM44AAA22oX87SQ340.jpg
      2.单向加密
           单向加密工具::md5sum, sha1sum,sha224sum,sha256sum…
                          openssldgst
           算法: md5, sha1
           openssldgst-md5 [-hex默认]/PATH/SOMEFILE
           openssldgst-md5 testfile
           md5sum /PATH/TO/SOMEFILE
           如: openssl dgst -md5 f1
            wKioL1fnvquSAdJEAAAdXTRDbQE476.jpg
      3. 生成用户密码:
           passwd命令:man sslpasswd
           openssl passwd-1 -salt SALT(最多8位)
           openssl passwd-1 –salt centos
      4.生成随机数: man sslrand
            openssl rand -hex|-base64 num
                 num:表示字节数,-hex:每个字节4位,出现的字符数为num*2
            wKioL1fnvrWy7N88AAAUPjQrUmE604.jpg
      5.公钥加密
           算法: RSA,ELGamal,DSA
           工具: gpg,openssl rsautl
           密钥交换:
                 公钥加密,DH
           生成密钥对:
                 openssl genrsa-out/PATH/TO/PRIVATEKEY.FILE NUM_BITS
                 (umask 077; openssl genrsa -outkey –des 1024)      注意:-des 为加密                wKiom1fnvsKCmjR4AABaPm_7PbM370.jpg          
           从私钥中提取公钥:
                 openssl rsa -in PRIVATEKEYFILE –pubout –outPUBLICKEYFILE                     wKiom1fnvsySCsaWAAAYr3bDhQY624.jpg

二. 创建CA和申请证书
      2.1 创建私有CA:
           1. 生成私钥
           2. 生成自签署证书
                 (1)私钥用于签发证书时,向证书添加数字签名使用
                 (2)证书:每个通信方都导入此证书至"受信任的证书颁发机构"
           openssl的配置文件:/etc/pki/tls/openssl.cnf
           工作目录: /etc/pki/CA
      2.2 建立私有CA步骤:
           1. 创建所需要的文件
                 touch/etc/pki/CA/index.txt  ---颁发证书时写入内容
                 echo 01 >/etc/pki/CA/serial  ---序列号文件,从1开始
           2. 生成私钥文件:/etc/pki/CA/private/cakey.pem
           (umask 077; openssl genrsa -out/etc/pki/CA/private/cakey.pem 2048)
           3. 生成自签证书
           openssl req -new -x509 -key/etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365         
wKioL1fnvt3iK2eIAAA831Jn81U709.jpg
           其中:
                 -new: 生成新的证书签署请求
                 -key: 私有文件路径,用于提取公钥
                 -days N : 证书有效时长
                 -out: 输出文件保存路径
                 -x509: 直接输出自签署的证书文件,通常只有构建CA时,才这么用
      2.3. 给客户端颁发证书
           在需要使用证书的主机上生成证书请求
                 1. 给web服务器生成私钥
                 (umask 066; openssl genrsa -out/etc/httpd/ssl/httpd.key 2048)    注意:-out指定的路径是需要使用证书的服务的路径
                 2. 生成证书申请文件
                 openssl req -new -key/etc/httpd/ssl/httpd.key -days 365 -out /etc/httpd/ssl/httpd.csr    注意:httpd.csr就是请求文件
                 3.将证书请求文件传输给CA
                 4. CA签署证书,并将证书颁发给请求者:
                      openssl ca -in/root/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365      注意:httpd.crt为生成的证书
                      注意:默认国家,省,公司名称必须和CA一致,如果是公有CA,那么公司的地址不一定在一个城市,那么久需要修改配置文件了
                            vim/etc/pki/tls/openssl.cnf
                            wKiom1fnvvuAmCzrAAAnTsQCBLo317.jpg
                 5.查看生成的证书的信息:
                      openssl x509 -in/etc/pki/CA/certs/httpd.crt  -noout-text|subject|serial|dates
                 6.吊销证书
                      (1)在客户端获取要吊销的证书的serial
                            openssl  x509 -in /PATH/FROM/CERT_FILE  -noout -serial -subject
                      (2)在CA上,根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致
                            吊销证书:
                                  openssl ca-revoke /etc/pki/CA/newcerts/01.pem                           
wKioL1fnvwzSjR5pAAAi5ZJ3s-c047.jpg
                            生成吊销证书的编号(第一次吊销一个证书时才需要执行)
                                  echo 01 >/etc/pki/CA/crlnumber
                            更新证书吊销列表
                                  openssl ca crl-gencrl -out /etc/pki/CA/crl/ca.crl
                            查看crl文件
                                  openssl crl-in /etc/pki/CA/crl/ca.crl  -noout -text                                                           

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-277487-1-1.html 上篇帖子: unix下source的使用 下篇帖子: linux安全机制与加密工具使用 证书
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表