加密、解密;openssl自建CA

PKI:Public Key Infrastructure公钥基础设施
        签证机构:CA,被公认的提供公钥签证的机构
        注册机构:RA,CA的子机构
        证书吊销列表:CRL,当某个个人或者公司的服务器的私钥丢失后,向CA申请公钥证书吊销后所有已吊销的证书列表
        证书存取库:

    x.509: 定义了证书结构和认证协议标准;
        IP安全、TLS/SSL和S/MIME


    SSL: Secure Socket Layer安全套接层协议
        sslv1, sslv2, sslv3  各种版本

    TLS: Transport Layer Security传输层安全性
        tlsv1

        http(80/tcp) --> ssl --> https(443/tcp)

    Linux:gpg, (pgp); openssl

    openssl:
        openssl: 多用途命令行工具,各功能分别使用子命令实现
        libcrypto: 公共加密库
        libssl: ssl协议的实现

    openssl命令工具:
        # openssl versionwKiom1PdoiyxXDizAAA2Ax54EP4615.jpg来查看我们系统所安装额openssl包的版本

    对称加密:
        工具:gpg, openssl enc
        算法:DES, 3DES, AES, Blowfish, Twofish, RC6, idea, CAST5

        # openssl enc -des3 -a -salt -in /tmp/jiami/qq -out /tmp/jiami/qq.cipher

wKioL1Pdo1nzBndSAADzlNHUesY003.jpg加密文件内容
        # openssl enc -d -des3 -a -salt -in /tmp/jiami/qq.cipher -out /tmp/jiami/qq.jiemi

wKioL1Pdo3rCw3CMAADjJWd9jss203.jpg解密文件内容

    单向加密:
        特性:
            One-Way
            Collison-free
        算法:各种密文生成长度
            md5: 128bits
            sha1: 160bits
            sha256
            sha384
            sha512

        工具:md5sum, sha1sum, openssl dgst, chsum

        # openssl dgst -md5 /tmp/jiami/qq

         wKiom1PdonjxWOF5AABQJVoWi5U947.jpg计算文件的特征码

        MAC: 消息摘要码,单向加密的一种延伸类的应用
            应用:用于实现在网络通信中保证所传输的数据的完整性

            机制:
                CBC-MAC
                HMAC:使用md5或sha1算法

    用户密码:
       # openssl passwd -1 -salt 12345678

wKiom1PdosCy4XzDAABQqQE8uxs420.jpg    

    生成随机数:
        openssl rand -hex 8

wKioL1Pdo-2gngB9AAAyBa02JYs803.jpg生成一个8字节的随机数

    公钥加密:
        算法:RSA, EIGamal
        工具:gpg, openssl rsautl

    数字签名:
        算法:RSA, EIGamal, DSA

        DSA: Digital Signature Algorithm
        DSS: Digital Signature Standard


    密钥交换:IKE
        算法:公钥加密、DH
            Diffie-Hellman

    生成密钥: 
        # (umask 077; openssl genrsa  -out /tmp/mima2 2048 )

wKiom1PdoubTOH_RAACNT4gxBAM904.jpg

        提出公钥: 
      # openssl rsa -in /tmp/mima2 -pubout

      wKioL1PdpBqAka_EAAFwrN5o8_g172.jpg

 

 

 

 

      如何用openssl建立私有CA,以满足在公司内部建立基于证书的通信。CA之所以存在,只是为了让其他任何想和你通信的客户可以拿到你的真正公钥,因为CA本身的权威和公信已可以其他客户端承认公钥的真实信

首先我们看一下openssl包生成的文件

# rpm -ql openssl

wKiom1PdoxeQ__5cAAGORBpaTos138.jpg
一、建立CA服务器:首先自己给自己发个证书,以让其他客户端验证你给别人颁发的证书是”官方“可被信任的

    1、生成密钥

在我们安装openssl包后,在/etc/kpi/CA/private/里面放的就是CA的私钥,配置文件中默认在这里
    # (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

wKioL1PdpG3DFBeAAAD0qMq76aQ843.jpg

    2、自签证书
    # openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365

wKioL1PdpInhPZAsAAKKOMAAjnc316.jpg

 

        req: 生成证书签署请求
            -new: 新请求
            -key /私钥存放地: 指定私钥文件
            -out /存放的地方:
            -x509: 生成自签署证书
            -days n: 有效天数

    3、初始化工作环境
    # touch /etc/pki/CA/{index.txt,serial}
    # echo 01 > /etc/pki/CA/serial

二、节点申请证书:

    (一) 节点生成请求
        1、生成密钥对儿
         wKiom1Pdo4ugMErKAADCKHJIqok247.jpg

        2、生成证书签署请求

      wKioL1PdpNmAqND6AAEXjPl9ggs657.jpg

        3、把签署请求文件发送给CA服务
        # scp


    (二) CA签署证书
        1、验正证书中的信息;
        2、签署证书
        # openssl ca -in /path/to/somefile.csr -out /path/to/somefile.crt -days N

        3、发送给请求者;


你可能感兴趣的:(加密,解密,自建CA)