在保证数据传输过程中数据的完整性、保密性以及对发送方的身份验证中,最重要的是获得对方的公钥。那么如何确认获得的公钥就是对方的而不是别人的呢!这就要用到CA,CA就是干这个的。
CA―证书颁发机构,可信第三方;
证书的内容:
1、证书的持有者的相关信息
2、CA的相关信息
3、证书的使用方法
4、公钥信息
PKI―public key instruction 公钥基础设施:核心是CA;
#openssl [-des3]
-des3 �C指定加密算法为3DES
-salt �C 加入随机数
-a �C 密文以ASCII码存放
-in FILE �C要加密的文件
-out FILE �C 指定加密后要保存的文件名
#openssl genrsa 768|1024|2048 �C 生成一个私钥
/etc/pki/tls/openssl.cnf �C 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 �Cnew �Cx509 �Ckey private/cakey.pem �Cout cacert.pem �Cdays 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 �Cnew �Ckey httpkey �Cout http.csr
3) 将申请文件http.csr发送到CA服务器;
4) CA服务器签发证书;
#openssl ca �Cin http.crt �Cout http.crt