在保证数据传输过程中数据的完整性、保密性以及对发送方的身份验证中,最重要的是获得对方的公钥。那么如何确认获得的公钥就是对方的而不是别人的呢!这就要用到CA,CA就是干这个的。

CA—证书颁发机构,可信第三方;

证书的内容:

1、证书的持有者的相关信息

2、CA的相关信息

3、证书的使用方法

4、公钥信息

PKI—public key instruction 公钥基础设施:核心是CA;

#openssl [-des3]

-des3 –指定加密算法为3DES

-salt – 加入随机数

-a – 密文以ASCII码存放

-in FILE –要加密的文件

-out FILE – 指定加密后要保存的文件名

#openssl genrsa 768|1024|2048 – 生成一个私钥

/etc/pki/tls/openssl.cnf – openssl的配置文件;

利用openssl 建立CA服务器:

1. 编辑openssl.cnf 文件:

######

[ CA_default ]

dir = ../../CA # Where everything is kept

certs = $dir/certs # Where the issued certs are kept

crl_dir = $dir/crl # Where the issued crl are kept

database = $dir/index.txt # database index file

定义CA工作目录为dir =/etc/pki/CA

2. 生成CA的私钥,

#(umask 077;openssl genrsa 2048 > /etc/pki/CA/private/cakey.pem)

3. 给CA颁发证书:

#openssl req –new –x509 –key private/cakey.pem –out cacert.pem –days 3560

4. 填写CA服务器相关信息;

5. 建立CA所需的文件夹及文件;

a) #mkdir certs crl newcerts

b) #touch index.txt serial crlnumber

c) #echo 01 > serial

d) #echo 01 > crlnumber

CA服务器建立。

-------------------------------------------------

向CA服务器申请证书:

1) 生成私钥;

#(umask 077;openssl genrsa 1024 > /root/http.key)

2) 提出申请;

#openssl req –new –key httpkey –out http.csr

3) 将申请文件http.csr发送到CA服务器;

4) CA服务器签发证书;

#openssl ca –in http.crt –out http.crt