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

来源:互联网 发布:网络通,浏览器打不开 编辑:程序博客网 时间:2024/06/13 02:00

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

CentOS 6.6 openssl自建CA

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

一、建立私有CA

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

    1. [root@localhost ~]# cd /etc/pki/CA
    2. [root@localhost CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)  
    3. 用()是为了在子shell中运行,不影响当前的umask  
    4. -out为输出私钥的位置    
    5. 2048为密钥的长度
2、在CA上生成自签署证书  必须在/etc/pki/CA目录下

    1. [root@localhost CA]# openssl req -new -x509 -key ./private/cakey.pem -days 3665 -out cacert.pem    
    2. -new 为生成新的证书,会要求用户填写相关的信息
    3. -x509 通常用于自签署证书,生成测试证书或用于CA自签署 
    4. -key私钥位置  
    5. -days申请的天数(默认30天) 
    6. -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服务器上进行

生成私钥

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

生成证书签署请求/etc/httpd/conf/certs
    1. # openssl req -new -key httpd.key -out httpd.csr -days 3665
    2. HTTP服务器端不需要加-x509
2、在CA上给http服务器签署证书
需要把http那台主机的证书申请文件拷贝到CA(位置随意)
    1. # scp REQ_HOST:/path/to/somewhere/somefile.csr /path/to    
    2. 源端 目的端

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

    1. # touch {index.txt,serial}
    2. # echo "01" > serial 首次必须添加序列号否则会报错unable to load number from /etc/pki/CA/serial    error while loading serial number
CA给http服务器签署证书

    1. # openssl ca -in httpd.csr -out http.crt
确认签署
    1. # cat index.txt
    2. V151128012240Z01unknown/C=CN/ST=JS/O=CJ/OU=ops/CN=www.magedu.com/emailAddress=admin.magedu.com    查看index.txt,最前面有一个大V
    3. # cat serial    serial由01变02
    4. 02
    5. # ll /etc/pki/CA/newcerts/ 会有一个文件生成
    6. total 8
    7. -rw-r--r-- 1 root root 7878 Nov 28 09:23 01.pem
签署时CA的/etc/pki/CA/cacert.pem一定要存在,否则会有一下错误
    1. [root@localhost tmp]# openssl ca -in http.csr -out http.crt
    2. Using configuration from /etc/pki/tls/openssl.cnf
    3. Error opening CA certificate /etc/pki/CA/cacert.pem
    4. 140176870549320:error:02001002:system library:fopen:No such file or directory:bss_file.c:39
    5. 140176870549320:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:
    6. unable to load certificate
3、查看生成的证书的信息 (http.crt文件)
    1. # openssl x509 -in /path/to/somefile.crt -noout -text|-subject|-serial
    1. # openssl x509 -in http.crt -noout -subject
    2. subject= /C=CN/ST=JS/O=CJ/OU=ops/CN=www.magedu.com/emailAddress=admin.magedu.com
    3. # openssl x509 -in http.crt -noout -serial
    4. serial=01    -subject选项信息比较多,就不贴出来了
4、生成完需要拷贝到http服务器上  也用scp命令
三、吊销证书

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

    1. touch /etc/pki/CA/crlnumber
    2. echo "01" > /etc/pki/CA/crlnumber
如没创建/etc/pki/CA/crlnumber文件会有一下错误

    1. [root@localhost crl]# openssl ca -gencrl -out ca.crl
    2. Using configuration from /etc/pki/tls/openssl.cnf
    3. /etc/pki/CA/crlnumber: No such file or directory
    4. error while loading CRL number
    5. 140175277365064:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen(‘/etc/pki/CA/crlnumber,r)
    6. 140175277365064:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:
2、在CA端,吊销证书
    1. # openssl ca -revoke /etc/pki/CA/newcerts/01.pem 吊销证书
    2. Using configuration from /etc/pki/tls/openssl.cnf
    3. Revoking Certificate 01.
    4. Data Base Updated
    1. # cd /etc/pki/CA/crl/
    2. [root@localhost crl]# openssl ca -gencrl -out thisca.crl 更新证书吊销列表
    3. Using configuration from /etc/pki/tls/openssl.cnf
3、查看吊销信息
    1. # cat index.txt 由V变成了R
    2. R151128012240Z141128021144Z01unknown/C=CN/ST=JS/O=CJ/OU=ops/CN=www.magedu.com/emailAddress=admin.magedu.com
    3. # cat crlnumber   由01变02
    4. 02
0 0
原创粉丝点击