您的位置:首页 > 运维架构

一次加密通信和SSL通信,openssl自建CA

2015-10-15 14:21 591 查看
转载:一次加密通信和SSL通信,openssl自建CA

标签:

一次会话,发邮件,用户和用户之间的数据加密

1、生成数据

2、用单向加密数据生成特征码

3、用自己的私钥加密特征码放在数据后面

4、生成临时会话密钥加密特征码和数据

5、用对方的公钥加密临时密钥





OpenSSL构建私有CA

构建私有CA

    1、生成私钥

    2、自签署证书

给节点发放证书

    1、节点申请证书

        节点生成私钥

        生成证书签署请求

        把请求文件发送给CA

    2、CA签署证书

        CA验证请求者的信息

        签署证书

        把签署好的证书发还给请求者

验正证书:

    1、使用CA的公钥的解密证书的数字签名

    2、使用同样的单向加密算法提取证书文件特征码,对比解密的结果
    3、验正主体名称与请求的服务器地址是否相同

SSL的工作过程,Client和Server之间
    1、Server已向CA申请过证书
    2、Client和Server经过TCP的3次握手
    3、Client向Server请求证书,Server发送证书给Client
    4、Client通过CA公钥解密签名验证来源合法性,再用同样的单向加密计算特征码验证完整性,后验证访问的主机是否一致(证书中的common name对比)
    5、协商ssl版本,加密算法,生成临时密钥进行通信
    6、除非连接断开再次建立连接

CentOS 6.6 openssl自建CA

有2台虚拟机,一台CA,一台http服务器

一、建立私有CA

1、在CA上生成私钥文件 在/etc/pki/CA/private

[root@localhost ~]# cd /etc/pki/CA

[root@localhost CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)  

用()是为了在子shell中运行,不影响当前的umask  

-out为输出私钥的位置    

2048为密钥的长度


2、在CA上生成自签署证书  必须在/etc/pki/CA目录下

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

-new 为生成新的证书,会要求用户填写相关的信息

-x509 通常用于自签署证书,生成测试证书或用于CA自签署 

-key私钥位置  

-days申请的天数(默认30天) 

-out生成位置




以上自签时填写的相关信息可以通过/etc/pki/tls/openssl.cnf配置文件添加(以上截图已经填写过的效果),从而可以复制到其他主机生成签署请求的时候重复填写

    countryName_default

    stateOrProvinceName e_default

    0.organizationName_default

    organizationalUnitName_default

  以下2个不能使用默认值

    commonName   

    emailAddress

二、给http服务器发放证书

假设:用httpd服务,其位置为/etc/httpd/conf/certs,certs为自己创建的文件夹

1、http服务器申请证书:在http服务器上进行

生成私钥

# (umask 077; openssl genrsa -out httpd.key 1024)


生成证书签署请求/etc/httpd/conf/certs

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

在HTTP服务器端不需要加-x509,

2、在CA上给http服务器签署证书

需要把http那台主机的证书申请文件拷贝到CA(位置随意)

# scp REQ_HOST:/path/to/somewhere/
somefile.csr /path/to    
源端 目的端

第1次签署在/etc/pki/CA目录下创建以下文件

# touch {index.txt,serial}

# echo "01" > serial  首次必须添加序列号否则会报错unable to load number from /etc/pki/CA/serial    error while loading serial number


CA给http服务器签署证书

# openssl ca -in httpd.csr -out http.crt


确认签署

# cat index.txt

V	151128012240Z		01	unknown	/C=CN/ST=JS/O=CJ/OU=ops/CN=www.magedu.com/emailAddress=admin.magedu.com
    查看index.txt,最前面有一个大V
# cat serial
    serial由01变02
02

# ll /etc/pki/CA/newcerts/  会有一个文件生成

total 8

-rw-r--r-- 1 root root 7878 Nov 28 09:23 01.pem


签署时CA的/etc/pki/CA/cacert.pem一定要存在,否则会有一下错误

[root@localhost tmp]# openssl ca -in http.csr -out http.crt

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

Error opening CA certificate /etc/pki/CA/cacert.pem

140176870549320:error:02001002:system library:fopen:No such file or directory:bss_file.c:39

140176870549320:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:

unable to load certificate


3、查看生成的证书的信息 (http.crt文件)

# openssl x509 -in /path/to/somefile.crt -noout -text|-subject|-serial



# openssl x509 -in http.crt -noout -subject

subject= /C=CN/ST=JS/O=CJ/OU=ops/CN=www.magedu.com/emailAddress=admin.magedu.com

# openssl x509 -in http.crt -noout -serial

serial=01
    -subject选项信息比较多,就不贴出来了

4、生成完需要拷贝到http服务器上  也用scp命令
三、吊销证书

1、第一次吊销需创建文件,生成编号,在CA端进行

touch /etc/pki/CA/crlnumber

echo "01" > /etc/pki/CA/crlnumber


如没创建/etc/pki/CA/crlnumber文件会有一下错误

[root@localhost crl]# openssl ca -gencrl -out ca.crl

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

/etc/pki/CA/crlnumber: No such file or directory

error while loading CRL number

140175277365064:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen(‘/etc/pki/CA/crlnumber‘,‘r‘)

140175277365064:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:


2、在CA端,吊销证书

# openssl ca -revoke /etc/pki/CA/newcerts/01.pem  吊销证书

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

Revoking Certificate 01.

Data Base Updated


# cd /etc/pki/CA/crl/

[root@localhost crl]# openssl ca -gencrl -out thisca.crl   更新证书吊销列表

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


3、查看吊销信息

# cat index.txt   由V变成了R

R	151128012240Z	141128021144Z	01	unknown	/C=CN/ST=JS/O=CJ/OU=ops/CN=www.magedu.com/emailAddress=admin.magedu.com

# cat crlnumber
   由01变02
02
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ca