openssl生成证书

    数字证书:
    第三方机构使用一种安全的方式把公钥分发出去
       证书格式:x509,pkcs家族
         x509格式:
           公钥和有效期限:
           持有者的个人合法身份信息;(主机名,域名)
           证书的使用方式
           CA的信息
           CA的数字签名

        谁给CA发证:自签署证书
用户
1.生成一对密钥 2.把所需信息和公钥按固定格式制作成证书申请(把公钥给CA签署)

CA机构
1.自签证书,生成密钥对 2.签署证书 3.传给用户 4.维护吊销列表(是否过期) OpenCA(大规模应用)

用openssl实现私有(自建)CA 配置文件
/etc/pki/tls/openssl.cnf 命令: 谁给CA发证:自签署证书

 



CA服务器端: 用openssl实现私有CA: 配置文件:
/etc/pki/tls/openssl.cnf
    
     [root@k8s1 CA]# cd /etc/pki/CA 生成密钥对儿,默认生成公钥和私钥 cakey.pem是私钥: # (umask
077; openssl genrsa -out private/cakey.pem 2048) 如果想查看公钥,公钥是从私钥中提取出来的,非必要提取公钥: # openssl rsa -in private/cakey.pem -pubout -text -noout 生成自签证书: # openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655 countrCountry Name 国家 State or Province Name 州或者省的名字 Locality Name 所在的城市 Organization Name 所在的公司 Organizational Unit Name 所在的部门 Common Name https访问的地址
    配置文件:/etc/pki/tls/openssl.cnf
       

        自签证书,openssl.conf 配置文件,无法修改Common Name(https://ca.cinyi.com),和email,需要手动修改。

     

        创建需要的文件:
     # cd /etc/pki/CA # touch index.txt serial crlnumber 给签发的客户端编号 #echo
01 > serial 客户端: 用openssl实现证书申请: 在主机上生成密钥,保存至应用此证书的服务的配置文件目录下, 例如: # mkdir /etc/httpd/ssl # cd /etc/httpd/ssl # (umask 077; openssl genrsa -out httpd.key 1024) 生成证书签署请求(输入的字符country name,State or Province Name, Organization Name 必须和服务CA端相同,否则
     CA签署不通过): # openssl req
-new -key httpd.key -out httpd.csr

        将请求文件发往CA;
       # scp httpd.csr CA服务器端:/tmp/

CA服务器端:
    CA签署证书:
        签署:
            # openssl ca -in /tmp/192.168.20.230.csr  -out /tmp/192.168.20.230.crt -days 3650

        将证书传回请求者,可以放置到nginx 配置文件下,形成https访问
# scp /tmp/192.168.20.230.crt 192.168.20.230:/tmp/下, 吊销证书: # openssl ca
-revoke /path/to/somefile.crt

 

posted @ 2017-04-17 17:40  fengjian1585  阅读(518)  评论(0编辑  收藏  举报