设为首页 收藏本站
查看: 1247|回复: 1

[经验分享] Linux OpenSSL 自建CA

[复制链接]

尚未签到

发表于 2018-5-23 10:30:53 | 显示全部楼层 |阅读模式
一、自建CA前准备
1.1 openssl的主配置文件;
在建立私有CA之前,先来了解一下openssl的主配置文件,其路径:/etc/pki/tls/openssl.cnf
用VIM查看此脚本,在[CA_default],可以查看CA很多默认选项,如下;
dir: CA的主目录
certs: 已颁发证书的存储位置
crl_dir:已吊销证书的存储位置
database:证书索引文件
new_certs_dir:新颁发证书的存储位置
certificate:CA证书文件
serial:证书颁发时的当前序列号
crlnumber:吊销证书的当前序列号
crl:当前使用的CRL
private_key: CA私钥
RANDFILE:私有随机数生成器文件

1.2 CA证书结构和认证协议标准……. x.509
版本号
序列号
签名算法ID
发行者的名称
有效期
主体名称
主体公钥
发行者唯一标识符
主体的唯一标识
扩展
发行者的签名


1.3思路
想构建CA必须要了解CA构建的情况,请先参照加密解密方面博客
简单思路如下;
构建私有CA:
生成私钥;
自签署证书;
(2)给节点发放证书:
节点申请证书:
生成私钥
生成证书签署请求
把请求文件发送给CA
(3)CA签署证书:
验正请求者的信息
签署证书
把签署好的证书发还给请求者


二、自建CA详细步骤;
2.1生成私钥
CA私钥的存储位置为/etc/pki/CA/private下一般存储名字为cakey.pem的名字权限只有属主有权限
操作步骤如下图所示:
                              DSC0000.jpg
命令解释:
            umask077:设置生成的文件的权限,umask取反
            genrsa:生成私钥
            -out:私钥存放路径
            2048:2048字节计算(默认为2048--centos6.6)

2.2生成自签证书
自动在私钥中提取公钥放到自签证书中,用来验证所颁发证书的合法性。注意路径文件名:存放密钥库的目录为private,生成的自签文件存放在/CA目录下。
用vim进入配置文件,填写默认国家、城市等信息
[root@Burgess ~]# vim/etc/pki/tls/openssl.cnf进入脚本后需要修改填写地方,如下图;
DSC0001.jpg
保存退出后;
在命令行键入信息及剩余修改信息,如下图;
DSC0002.jpg
注意:开始只出现显示国家名称的信息,需要按键回车显示下一行信息
命令解释:
    req:生成证书签署请求(PKCS#10格式)
          -new: 生成新的证书签署请求;
          -key /path/to/keyfile:私钥文件路径;
          -out /path/to/somefile: 生成的证书请求文件路径;
          -x509:专用于CA生成自签署证书时;
          -days 19890:证书有效时长;

DSC0003.jpg
index.txt------索引文件用来匹配证书编号
serial----证书序列号存放文件;从01开始
补充:-newkey rsa:NUM  无需事先专门生成私钥文件,而是生成请求时直接生成私成私钥,并提取公钥用于证书;
国家、公司等信息,申请获得证书者需要与自签整数保持一致,否则不可用;自建CA修改后的脚本可以共享给其他节点


三、给节点发放证书:
3.1节点申请证书:在申请证书的主机上进行
3.1.1生成私钥
假设:用httpd服务,因此其位置为/etc/httpd/conf/certs/;所以,操作步骤如下:
DSC0004.jpg
解析:Certs创建也可以在conf.d目录,用于存放私钥和证书
umask077;对权限取反
          genrsa:生成私钥
          httpd.key:自我命名的文件名,也可以以pem结尾
还可在命令行继续执行ll查看是否生成私钥
[root@burgess certs]# ll
total 4
-rw------- 1 root root 887 Dec 9 08:00 httpd.key

3.1.2生成证书签署请求
将生成的自签证书复制到本地;或者用U盘等复制途径
[root@burgess certs]#scp172.16.249.214:/etc/pki/tls/openssl.cnf /etc/pki/tls/
[root@burgess certs]#vim /etc/pki/tls/………….查看配置文件是否修改
[root@burgess certs]#openssl req –new –key httpd.key –outhttpd.csr –days 19890此时显示国家、城市等信息,与自签证书一样操作

[root@burgess certs]#ls…….查看是否生成,显示如下
Httpd.csr  httpd.key

注意:其subject信息中地理位置与organization要与CA的保持一致

3.1.3把请求文件发送给CA
[root@burgesscerts]#
scp httpd.csr 172.16.249.214:/tmp/或者用U盘复制给CA;也可以复制到除/tmp/外的文件里面

3.2 CA签署证书:在CA主机上执行如下命令
3.2.1验正请求者的信息及签署证书
[root@Burgess CA]#ls /tmp/…………….在CA主机上查看httpd.csr是否存在
[root@Burgess CA]# openssl ca -in /tmp/httpd.csr -out/etc/httpd.crt -days 19890……………………签署证书(默认时长为一年)
[root@Burgess CA]#cat index.txt……………..签署完成后可查看到此索引里面会生成信息
[root@Burgess CA]#cat serial………………….会更新显示下一个签署证书的号码

3.2.2把签署好的证书发还给请求者:
[root@Burgess CA]#scp /tmp/httpd.crt  172.16.100.6:/etc/httpd/conf/certs/……………..放到特定目录下即可,也可U盘复制到REQ-HOST
注意:每一个需要接收服务器发来的证书,并验正证书合法性的客户端主机,都必须拥有CA的证书才能进行;
3.2.3看证书中的相关信息
# openssl x509 -in /path/to/somefile.crt -noout-text|-subject|-serial


四、吊销证书
4.1 获取证书的serial (在证书持有端进行)
[root@burgesscerts]#openssl x509 -in httpd.crt -noout -serial-subjectx509:格式
    -in:要吊销的文件路径
    -noout:不输出任何额外信息
     -serial:生成的序列号
     -subjiect:输出subjiect的信息

4.2 CA
4.2.1验正请求者的信息
根据证书持有者提交的serial和subject信息来与index.txt数据库文件中的信息是否一致;
CA可以用cat查看/etc/pki/CA下的inndex.txt对应serial信息,电话核对是否与申请者的一致

4.2.2吊销证书
# openssl ca -revoke/etc/pki/CA/newcerts/SERIAL.pem
吊销后可使用cat查看index.txt,为R开头,表示revoked解析:-revoke 吊销证书命令

     newcerts:刚生成的证书存放目录,为SERIAL.pem,若时间久了,则是/etc/pki/CA/certs目录下

4.2.3 生成吊销证书的编号(如果是第一次吊销)
    # echoSERIAL > /etc/pki/CA/crlnumber

4.2.4更新证书吊销列表


# cd /etc/pki/CA/crl/
# openssl ca -gencrl -out thisca.crlthisca.crl为当前CA的吊销列表,可以自己定义文件名称

注意:查看crl文件的方法;
# openssl crl -in /path/from/somefile.crl -noout–text……..
输出吊销列表至text


  五、验正证书:
  1、使用CA的公钥的解密证书的数字签名;
  2、使用同样的单向加密算法提取证书文件特征码,对比解密的结果;
  3、验正主体名称与请求的服务器地址是否相同;



六、CA管理常用命令语法格式;
(1)查看颁发了多少证书:
[root@Burgess CA]# cat /etc/pki/CA/serial………….
会显示serial(2)查看颁发的证书的记录:
[root@Burgess CA]# ls /etc/pki/CA/newcerts/……….
显示SERIAL.pem(3)查看待签发证书目录
[root@Burgess CA]#ls /etc/pki/csr……………..
显示httpd.csr(4)查看签好的证书目录
[root@Burgess CA]#ls /etc/pki/certs…………….httpd.crt(5)查看证书的序列号和subjiect的信息
[root@Burgess CA]# cat /etc/pki/index.txt……………….V
开头的信息(6)查看吊销列表文件
# openssl crl -in /path/from/somefile.crl -noout–text……..CA
输出吊销列表至text,其他用户可以查看此文档

七、常见文件名称及后缀;
DSC0005.jpg




  x.509:https://access.redhat.com/documentation/en-US/Red_Hat_Certificate_System/8.0/html/Admin_Guide/Standard_X.509_v3_Certificate_Extensions.html
     http://www.cypherpunks.to/~peter/T2a_X509_Certs.pdf
  

运维网声明 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-480241-1-1.html 上篇帖子: 查看linux版本、 下篇帖子: linux下parted分区
累计签到:544 天
连续签到:1 天
发表于 2018-5-23 10:53:05 | 显示全部楼层
谢谢楼主分享

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

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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