博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实验:建立私有CA,并实现颁发证书(20190123 下午第一节)
阅读量:7052 次
发布时间:2019-06-28

本文共 5367 字,大约阅读时间需要 17 分钟。

证书的申请过程:

centos6是需要证书服务的主机 centos7为服务器

1、建立CA

1、[root@centos7 ~]# tree /etc/pki/CA/etc/pki/CA├── certs├── crl├── newcerts├── private[root@centos7 ~]# cd /etc/pki/CA[root@centos7 CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048 )  :用umask 077/066权限来保证安全,此时已生成私钥文件[root@centos7 ~]# tree|── certs├── crl├── newcerts├── private│   └── cakey.pem此时cakey.pem 文件生成,权限为0662、[root@centos7 CA]# openssl req -new -x509 -key privavte/cakey.pem -out cacert.pem -days 3650-----Country Name (2 letter code) [XX]:CNState or Province Name (full name) []:beijingLocality Name (eg, city) [Default City]:beijingOrganization Name (eg, company) [Default Company Ltd]:mageduOrganizational Unit Name (eg, section) []:devopsCommon Name (eg, your name or your server's hostname) []:www.magedu.comEmail Address []:admin@www.magedu.com此处需要填写登记信息,1;2;4项需要和后面的一样

[root@centos7 CA]# cat cacert.pem 此处生成了cacert.pem文件 可以用openssl x509 -incacert.pem -noout -text 以文本方式展示,也可以sz到windows中 更改为crt后缀,即可在桌面查看

2、申请证书

将软件中用到的证书和私钥存放在某个目录中

A、先生成私钥:[root@centos6 data]# (umask 066;openssl genrsa -out /test/app.key 1024)B、然后生成证书申请:[root@centos6 data]# openssl req -new  -key  /test/app.key -out /test/app.csr -----Country Name (2 letter code) [XX]:CNState or Province Name (full name) []:beijingLocality Name (eg, city) [Default City]:beijingOrganization Name (eg, company) [Default Company Ltd]:mageduOrganizational Unit Name (eg, section) []:devopsCommon Name (eg, your name or your server's hostname) []:www.magedu.comEmail Address []:admin@www.magedu.com此处需要填写登记信息,1;2;4项需要和前面的一样   此处生成了文件app.csr

C、然后把app.csr传到centos7上审核 若通过就能颁发证书:scp app.csr 192.168.93.254/etc/pki/CA 输入centos7的密码即可完成 (放此目录中比较方便)

此时去颁发证书会报错,如下:
[root@centos7 CA]# openssl ca -in app.csr -out certs/app.crt -days 100
/etc/pki/CA/index.txt: No such file or directory
/index.txt:是存放证书的编号,主题,状态等的文件
D、[root@centos7 CA]# > index.txt 将此文件建立起来,会利用该文件自动填充证书的信息
此时去颁发证书会报错,如下:
[root@centos7 CA]# openssl ca -in app.csr -out certs/app.crt -days 100
因为缺少编号 系统不知该从哪号开始
[root@centos7 CA]# echo 09 > serial 设置编号从09开始,顺便将文件建立起来
Cat serial --> 09

3 、颁发证书

E、[root@centos7 CA]# openssl ca -in app.csr -out certs/app.crt -days 100Certificate is to be certified until May  4 02:59:37 2019 GMT (100 days)Sign the certificate? [y/n]:y1 out of 1 certificate requests certified, commit? [y/n]y此处有两次确认信息,是否要颁发证书F、[root@centos7 CA]# tree  此为生成证书效果图  .├── app.csr├── cacert.pem├── certs│   └── app.crt├── crl├── index.txt├── index.txt.attr├── index.txt.old├── newcerts│   └── 09.pem├── private│   └── cakey.pem├── privkey.pem├── serial└── serial.oldG、[root@centos7 CA]# cat index.txtV   190504025937Z       09  unknown /C=CN/ST=beijing/O=magedu/OU=beiguo/CN=www.magedu.com/emailAddress=admin@magedu.com    表明此证书文件有效[root@centos7 CA]# cat serial    ---> 0A 此处为09后的下一个数Certs/app.crt  与  newcerts/09.pem  一样  后者为自动生成此时,将证书文件,私钥文件,CA的证书文件传给用户centos6,用户即可使用。H、[root@centos7 CA]# scp certs/app.crt 192.168.93.253:/dataroot@192.168.93.253's password: app.crt          100% 3883     4.0MB/s   00:00J、 [root@centos6 data]# lltotal 28-rw-r--r--  1 root root  3883 Jan 24 11:22 app.crt-rw-r--r--  1 root root   704 Jan 24 10:24 app.csr-rw-------  1 root root   891 Jan 24 10:22 app.key 此处app.key 为原来的私钥,app.crt 为生成的证书,app.csr 文件就没用了,申请完就没用了。所以 app.key,app.crt 就能给需要加密的软件使用了

K、将centos7上/CA文件中的:-rw-r--r-- 1 root root 1436 Jan 24 10:14 cacert.pem 该证书文件也拷贝到centos6中,因为某些软件会用到

到此证书已申请完成
L、[root@centos7 CA]# sz certs/app.crt 可以将之sz到windows桌面查看,因为是crt后缀,即可双击打开,因为证书无法验证,所以我们要导入到进去,双击按照步骤即可完成。

4、吊销证书:

可以先查看证书状态:Openssl x509 -in certs/app3.crt -noout -subject/-issuer/-dates等等[root@centos7 CA]#  Openssl ca -revoke newcerts/0B.pemOpenssl ca -status 0B    ---> 0B=revoke   标明0B证书已被吊销  此时证书只有自己知道吊销,别人不知道,所以要生成吊销列表,Openssl ca -gencrl -out crl.pem将报错,找不到/etc/pki/CA/crlnumber   该文件存放吊销编号Echo 09 > crlnumberOpenssl ca -gencrl -out crl.pem      此时已生成吊销列表,Tree  -->  会显示新的crl.pem的列表,  此时可将crl.pem传出windows  修改格式后即可查看最后要传到互联网,让用户知道该证书已吊销。

若吊销错误,取消吊销,方法:

Mv index.txt  index.txt.bakMv index.txt.old  index.txtOpenssl ca -statys 0B    ---> 0B =Valid   标明 0B证书成功恢复Openssl  verify - CAfile cacert.pem  certs/app.crt

该命令是查看该证书app.crt是否是我颁发的,检验证书的有效性,若是,即可显示OK,

总结步骤:

1、cd /etc/pki/CA(umask 077;openssl genrsa -out private/cakey.pem 2048 )openssl req -new -x509 -key  private/cakey.pem -out cacert.pem -days 3650> index.txtecho 09 > serial2 申请证书(umask 066;openssl genrsa -out /test/app.key 1024)openssl req -new  -key  /test/app.key -out /test/app.csr3 颁发证书openssl ca -in /test/app.csr  -out /etc/pki/CA/certs/app.crt -days 100此时,将证书文件,私钥文件,CA的证书文件传给用户centos6,用户即可使用。4 吊销证书openssl ca -revoke newcerts/0B.pemopenssl  ca -status 0Becho 09 > crlnumberopenssl ca -gencrl -out /etc/pki/CA/crl.pem

若前文中的1,2,4,三项不一致,出现的问题分析,(在同一计算机就可实验)如下:

1、先生成新的私钥文件: (umask 066;openssl genrsa -out /data/app2.key 1024)
2、然后生成证书申请:openssl req -new -key /data/app2.key -out /data/app2.csr
将登记信息故意填的不一样,此时,/data/下生成了两个文件,app2.csr app2.key
3、颁发证书: openssl ca -in /data/app2.csr -out certs/app2.crt -days 200
此时,报错信息为,组织机构是不一样的,
解救方法:
修改配置文件,vim /etc/pki/tls/openssl.cnf 将1,2,4,三项改为不一样即可。将证书从新写一遍即可,打开tree ---> 会显示:cat serial 变为0B ; cat index.txt 将显示两行 表明该文件生成了第二个数据,即新的证书申请成功!

注意:若提交一个证书申请,不能够颁发多次,因为在/CA中,cat index.txt.attr  中会显示 “unique_subject -yes” 标明主题必须唯一,所以不可颁发多次。   将“yes” 改为“no”即可,颁发多次。因为他是工作目录,优先级比配置文件的高,所以只有修改此处的文件,vim  index.txt.attr 将yes改为no,才可做到颁发多次的目的。

转载于:https://blog.51cto.com/14128387/2346208

你可能感兴趣的文章
角色设计的特点
查看>>
sublime text格式化json快捷键
查看>>
获得数据库自动生成的主键
查看>>
磁盘阵列
查看>>
y轴数据变换利器——yaxis-transformer
查看>>
Hibernate缓存机制
查看>>
从头开始复习css之动画
查看>>
sed常见用法,删除匹配行的上2行,下3行
查看>>
【BZOJ】1415 [Noi2005]聪聪和可可 期望DP+记忆化搜索
查看>>
android 7.1 调用相机崩溃解决办法
查看>>
等待时间的三种方式以及解释
查看>>
Arduino语音天气预报(一)
查看>>
转 廖雪峰 urllib
查看>>
直播源码有哪两种开发模式?
查看>>
访问控制符
查看>>
Android studio修改字体(font)大小(size)
查看>>
------第二节-----------------第二讲----单链表的基本操作---------
查看>>
iOS 百度地图大头针使用
查看>>
1118: 零起点学算法25——求两点之间的距离
查看>>
delegate代理设计模式
查看>>