向CA申请证书

 实验向CA申请证书

步骤:

  1. 建立Root CA

1)生成私钥

2)自签名证书

2.用户或服务器

1)生成私钥

2)生成证书申请文件

3)将申请文件发给CA

3.CA颁发证书

4.证书发送给客户端

5.应用软件使用证书

如:centos7当服务器,centos6客户端 ,即centos6向centos7申请证书

第一:建立根CA

生成私钥的文件放在哪,文件名叫啥,这不是能随便写的,它要求要配合CA搭建的一个重要配置文件,才能去实现,

/etc/pki/tls/openssl.cnf

1

1).创建私钥文件 ,且必须放在private文件夹中,并且必须叫cakey.pem

[root@centos7 CA]# cd /etc/pki/CA

[root@centos7 CA]# ls

certs  crl  newcerts  private

[root@centos7 CA]# tree

.

├── certs

├── crl

├── newcerts

└── private

 

由上可看出,private文件夹已存在,所不用创建.

[root@centos7 CA]# (umask 077;openssl genrsa -out private/cakey.pem 4096)    析:加umask是为了安全,4096是指定私钥位数,安全一点

[root@centos7 CA]# tree

.

├── certs

├── crl

├── newcerts

└── private

└── cakey.pem   已生成。

2)给自己颁发证书:

[root@centos7 CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650

(国家,省,城市,公司名,部门,网站名,其它可不写)

析:req是发申请,-new建立新申请,-x509表示自签名证书,,-key私钥文件private/cakey.pem ,-out 是从私钥文件生成申请并自己给自己颁发证书生成文件,cacert.pem  ,-days是有效期是

[root@centos7 CA]# ls

cacert.pem  certs  crl  newcerts  2

[root@centos7 CA]# openssl x509 -in cacert.pem -noout –text  用这个命令可以把它转成普通文本查看内容,x509格式,-noout,-text不生成新文件只是在屏幕上显示出来.,结果如下图,可以看到,上步中所输入的内容,国家,城市…..

2018-05-18_211423

[root@centos7 CA]# sz  cacert.pem  以widons图形方式查看,在下载文件夹中,把后缀名pem 改成crt 。

打开后效果如下

2018-05-18_212406

但是双击会报错。那就安装证书

2018-05-18_212754

2018-05-18_212813

出现如下画面则说明前面步骤是对的。

2018-05-18_212828

 

到控制面板的internet选项中,内容—-证书—–受信任的(下拉列表中可以看到刚magedu该证书没有问题了)

自此第一大步结束!!

第二步:从客户端申请证书。centos6

假设这个服务是app服务,所以申请的证书给app应用程序来使用

  • 先生成私钥:

[root@centos6 /data]$(umask 077;openssl genrsa -out app.key 1024 )

Generating RSA private key, 1024 bit long modulus

………………………++++++

………++++++

e is 65537 (0x10001)

析:文件名和目录与CA的私钥不能一样。这里是放在当前/data下,叫pem或key后缀都可以.客户端所以位数可以短点,这里只设置1024位。

2)利用私钥文件来生成证书的申请文件:

[root@centos6 /data]$openssl req -new -key app.key -out app.csr

析:这里不用写申请多少天,因为是颁发的说了算,这里也不用加-x509,因为这个是自签名的意思。注意提交申请中,国家省公司名必须与CA中的一致。

[root@centos6 /data]$ls

app.csr  app.key

[root@centos6 /data]$scp app.csr 172.20.110.245 :/etc/pki/CA

回到centos7服务器上:开始审核用户信息并颁发证书。颁发证书要用到/etc/pki/CA/index.tx   /etc/pki/CA/serial这两个文件,但现在这两个文件还没有,所以颁发证书时会报错,如下

[root@centos7 CA]# openssl ca -in app.csr -out certs/app.crt -days 100

Using configuration from /etc/pki/tls/openssl.cnf

/etc/pki/CA/index.txt: No such file or directory

unable to open ‘/etc/pki/CA/index.txt’

139651304716176:error:02001002:system library:fopen:No such file or directory:bss_file.c:402:fopen(‘/etc/pki/CA/index.txt’,’r’)

139651304716176:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:404:

所以要先建index.txt文件。

[root@centos7 CA]# touch index.txt  当颁发证书的时候它会自动把颁发完的结果,包括编号等信息写到这个文件里。

[root@centos7 CA]# echo 0F > serial 指定编号随便0F并创建文件serial

[root@centos7 CA]# cat serial

[root@centos7 CA]# openssl ca -in app.csr -out certs/app.crt -days 100确定确定

[root@centos7 CA]# ls

app.csr     certs  index.txt       index.txt.old  private  serial.old

cacert.pem  crl    index.txt.attr  newcerts       serial

[root@centos7 CA]# ll certs/app.crt  这就是我们颁发的证书

-rw-r–r–. 1 root root 4966 May 18 22:25 certs/app.crt

[root@centos7 CA]# cat certs/app.crt

Certificate:

Data:

Version: 3 (0x2)

Serial Number: 15 (0xf)  这个是编号不过转成了10进制

Signature Algorithm: sha256WithRSAEncryption

Issuer: C=CN, ST=beijing, L=beijing, O=magedu, OU=M30, CN=www.magedu.com

Validity

Not Before: May 18 14:25:37 2018 GMT

Not After : Aug 26 14:25:37 2018 GMT

Subject: C=CN, ST=beijing, O=magedu, OU=M30, CN=app.magedu.com

Subject Public Key Info:

Public Key Algorithm: rsaEncryption

Public-Key: (1024 bit)

Modulus:

00:c2:cc:d0:df:cf:2d:25:bd:7a:5c:db:2c:ce:98:

[root@centos7 CA]# sz certs/app.crt 同样可以传到widow上查看。

3)将文件复制到客户端就完事了。

[root@centos7 CA]# tree

.

├── app.csr

├── cacert.pem

├── certs

│   └── app.crt

├── crl

├── index.txt  (这个文件会自动更新,它存放了给哪些证书颁发的状态是什)

├── index.txt.attr

├── index.txt.old (这是之前的自动做奋份)

├── newcerts

│   └── 0F.pem

├── private

│   └── cakey.pem

├── serial

└── serial.old

[root@centos7 CA]# cat index.txt

V       180826142537Z           0F      unknown /C=CN/ST=beijing/O=maged

[root@centos7 CA]# scp certs/app.crt 172.20.111.193:/data/

 

如何吊销证书?

如果发现某证书有问题如何吊销?如下,发现证书编号为10的有问题:[root@centos7 CA]# cat serial    查看证书编号

10

[root@centos7 CA]# openssl ca -status 10   查看证书状态

Using configuration from /etc/pki/tls/openssl.cnf

Serial 10 not present in db.

Error verifying serial 10!

1.[root@centos7 CA]# openssl  ca -revoke newcerts/0F.pem

Using configuration from /etc/pki/tls/openssl.cnf

Revoking Certificate 0F.

Data Base Updated

[root@centos7 CA]# cat index.txt

R (是吊销状态)      180826142537Z   180519013814Z   0F      unknown /C=CN/ST=beijing/O=magedu/OU=M30/CN=app.magedu.com

[root@centos7 CA]# openssl ca -status 0F

Using configuration from /etc/pki/tls/openssl.cnf

0F=Revoked (R)

2.证书虽已吊销,但得让其它使用证书服务的人也知道这个证书吊销了,即要发布到互联网上。

1)发布到证书吊销列表(CRL):但需要人为去创建吊销列表文件,且它也需要一个证书列表的一个单独的编号。且放在图1 中那个文件夹下,/etc/pki/tls

[root@centos7 CA]# openssl ca -gnecrl -out crl.pem

析:-out是生成,这里的路径一定要注意了。

[root@centos7 CA]# echo 20 > /etc/pki/CA/crlnumber

析:指定吊销列表编号,可以随便编

[root@centos7 CA]# openssl ca -gnecrl -out crl.pem

[root@centos7 CA]# cat crlnumber

20

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/98845

(2)
单爆手单爆手
上一篇 2018-05-19
下一篇 2018-05-19

相关推荐

  • 正则式

    第四周作业

    Linux笔记 2018-06-10
  • shell编程二

    if while case until break continue select for

    2018-05-08
  • 今天开始,重新学习

    混了这么多年,才发现还是要学习,要有本事才能混的好些。今天开始,重新学习,为了有好的将未来。为了能够多挣点钱。。。。。。

    Linux笔记 2018-06-20
  • Elastic Stack(ELK)介绍及相关示例实验

    Elastic Stack是一套支持数据采集、存储、分析、展现的全流程数据分析工具,旧时称作ELK(Elasticsearch,Logstash,Kibana的缩写,)。Elastic Stack由一系列的工具集组成,Logstash & Beats:数据采集工具,logstash适合大批量数据的采集,其结构较重,消耗资源较大,适合集群化部署。

    2018-07-31
  • 第二周作业

    第二周作业
    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
    2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
    3、请使用命令行展开功能来完成以下练习:
    (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
    (2)、创建/tmp/mylinux目录下的:
    mylinux/
    ├── bin
    ├── boot
    │ └── grub
    ├── dev
    ├── etc
    │ ├── rc.d
    │ │ └── init.d
    │ └── sysconfig
    │ └── network-scripts
    ├── lib
    │ └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │ └── local
    │ ├── bin
    │ └── sbin
    └── var
    ├── lock
    ├── log
    └── run

    Linux笔记 2018-05-13
  • 文件管理

    window系统是多根架构,linux是多根架构 2.手动挂载光盘 mount /dev/sr0 /mnt (只有root用户才能使用) /proc 看到是内存中的数据,看的都是磁盘上不存在的,修改里面的内容会立即生效。 echo ‘- – -’ > /sys/class/scsi_host/host2/scan 新加的硬盘不重启也能被识别…

    Linux笔记 2018-07-29