openssl创建私有ca


1.ssl大概内容

PKI:公钥基础设施结构

CA:证书权威机构,PKI的核心

CRL:证书吊销列表,使用证书之前需要检测证书有效性


证书存储格式常见的X509格式

  包含内容 

    公钥有效期限

    证书的合法拥有人

    证书该如何使用

    CA的信息

    CA签名的校验码(签名)


ssl:是在传输层和应用层之间的一个库,通过调用ssl实现加密

目前常用版本:V2 V3版


客户端和服务端通信

    客户端请求服务端

    客户端和服务端协商使用加密协议,加密算法  SSLv1 SSLv2 TLSv3

    服务端发送证书给客户端 

    客户端生成随机数,通过服务端公钥加密后,传输数据(对称密码)给服务端

    服务端将对称密码加密数据给客户端

    


2.常见的加密算法   

对称加密

    DES  3DES

    AES  AES192 AES 256 AES512

单向加密

    md4   md5

    SHA1  SHA192 SHA256 SHA384

    CRC-32


公钥加密

    身份认证

    数据加密

    密钥交换

       RSA算法 可以用来加密也可用来签名

       DSA算法 只可以用来签名



3.openssl命令

   speed 测试本机对各种加密算法的速度

   openssl speed rsa  可以接算法表示测试单个算法的速度

   enc -des  指定加密算法,对称加密算法    

   -a 对文件内容进行base64处理

   -e 加密 默认选项

   -d  解密

   -salt 加盐加密

   -in  指定要加密的文件

   -out 加密后输出文件

   dgst -md5 计算文件特征码 

   genrsa 生成rsa密钥

   gendsa 生成dsa密钥


  加密 openssl enc -des3 -salt -a  -in /etc/fstab -out fstab.des3

  解密 openssl enc -des3 -d -salt -a in fstab.des3 -out fstab



4.openssl创建私有CA步骤:

    1、生成一对密钥

    2、生成自签证书

生成一对密钥:

    (umask 077; openssl genrsa -out cakey.pem 1024 ) 

 ()中的命令只在子shell中生效,命令执行完之后退出子shell

 umask:改变默认创建的文件和目录权限,077为反码

 genrsa:生成密钥,权限为600,长度为1024位的私钥

 存放在cakey.pem文件中



生成自签证书:

    openssl req -new -x509 -key  cakey.pem -out  cacert.pem -days 365  //生成私有证书

        req        //生成证书,和申请证书的命令

        -new       //代表生成一个新的申请

        -x509       //生成自签证书 

        -key       //指定密钥文件

        -out       //指定输出证书文件

        -days      //指定过期时间

    交互式界面:

1、国家代码(CN,JB...)

2、省份     3、市       4、组织

5、部门     6、主机名     7、邮箱地址

 


在/etc/pki/CA目录下创建必要certs , newcerts,crl目录,和index.txt,serial文件

需要给serial文件一个初始值,一般为01,需要自己编辑


/ect/pki/CA/private/cakey.pem //存放CA自己的密钥文件,命名为cakey.pem

/ect/pki/CA/cacert.pem //自签证书存放位置



5、验证

客户机:

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

openssl req -new -key httpd.key -out httpd.csr


服务器:

客户机将httpd.csr上传CA服务器

openssl ca -in httpd.csr -out httpd.crt -days 365

将签署的证书发送改客户机