本文共 5367 字,大约阅读时间需要 17 分钟。
centos6是需要证书服务的主机 centos7为服务器
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后缀,即可在桌面查看
将软件中用到的证书和私钥存放在某个目录中
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 --> 09E、[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后缀,即可双击打开,因为证书无法验证,所以我们要导入到进去,双击按照步骤即可完成。可以先查看证书状态: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.key3、颁发证书: 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