您的位置:首页 > 其它

CA的建立与证书的颁发

2011-02-19 23:11 369 查看
证书颁发的过程:

一、作为客户端,先生成公钥私钥对

二、结合公钥生成证书申请请求

三、将生成的请求发给CA

四、服务端,CA开始签署收到的请求,生成证书

五、客户端收到证书
第一种情况:在一台主机主,既当CA,又当证书申请者

生成密钥

# openssl genrsa 1024 > /root/httpd.key

注:1024为密钥长度,将密钥生成到/root/httpd.key

公钥是从私钥中提取出来的

生成公钥

# openssl rsa -in /root/httpd.key -pubout -out /root/httpd.pub

生成申请:

# openssl req -new -key /root/httpd.key -out /root/httpd.csr

开始输入申请信息

注:请求文件一般以.csr结尾

CA:

自签证书

# openssl req -new -key /root/httpd.key -out /root/httpd.crt -days 3655

注:发了一上使用期限为3655天的证书 /root/httpd.crt

发自签证书不需要请求

查看证书申请的内容:

# openssl -req -noout -in /root/httpd.csr -text

注:用其它方法查看,得到的是乱码

########################################################

第二种情况:CA与证书申请者分开

主机1(CA):192.168.0.1

主机2(证书申请者):192.168.0.2

把主机1做成CA

首先给自己发一个证,在/etc/pki/CA/private下

# cd /etc/pki/tls

# vim openssl.cnf

修改[ CA_default ]下的

dir = /etc/pki/CA

修改 [ req_distinguished_name ] 下的

countryName_default = CN

stateOrProvinceName_default = 所在省名Henan

locallityName_default = 所在城市名

其余的一些像组织名,邮箱地址的,如果想修改一下默认也可以,这样可以在生成证书时,直接敲回车按默认就行了

# cd /etc/pki/CA

生成私钥文件

# openssl genrsa 1024 > private/cakey.pem

# chmod 400 private/cakey.pem

基于此密钥给自己发一个证书

生成自签署证书不必要请求,可直接生成

# openssl req -new -x509 -key private/cakey.pem -out cacert.pme -days 3655

开始输入证书信息

注:证书只有放在/etc/pki/CA下才可以用

创建几个所需的目录

# mkdir certs newcerts crl

# touch index.txt serial

# echo 01 > serial

注:certs 存放证书的位置

crl 存放证书调销列表

index.txt 存放都发给谁证书了,发了第几个了

newcerts 存放生成的新证书

serial 内部管理序列号,默认从00或01开始

这此文件的名字可以自己取,但要与/etc/pki/tls/openssl.cnf中的配置保持一致

至此,CA便可以使用,一般只在企业内部使用,所以请求证书时填写的证书信息应与CA证书保持一致

在另一台客户端主机上,配有httpd服务或其它服务,需要申请证书

首先在服务配置文件所在目录下创建certs目录

# mkdir certs

生成私钥

# umask 077; openssl genrsa 1024 > httpd.key

注:umask 077 用于保证生成的私钥文件的权限为600,不允许其它用户读写

生成申请

# openssl req -new -key httpd.key -out httpd.csr

输入申请信息,需要与CA的证书信息保持一致

将请求httd.csr发给CA

这里可以用通过邮件或者U盘都可以,也可用scp

这里将请求发送至CA的/tmp目录中

# scp httpd.csr 192.168.0.1:/tmp

在CA上

# cd /tmp

开始签署请求

# openssl ca -in httpd.csr -out /etc/pki/CA/newcerts/httpd.crt

在接下来的询问中,同意请求即可

在客户端上

获取颁发的证书

# scp 192.168.0.1:/etc/pki/CA/newcerts/httpd.crt

完!

快速颁发证书的方法,用于测试

在CA上

# cd /etc/pki/tls/certs

# make httpd.pem

生成一个名为httpd.pem用于测试的证书

# make httpd.key

生成一个1024位的私钥

# make httpd.csr

生成一个请求

# make httpd.key

生成一个正二八经的证书

###如发现文中有错,请即时指正,不胜感激!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: