美文网首页
OpenSSL:实现创建私有CA、签署证书请求详解

OpenSSL:实现创建私有CA、签署证书请求详解

作者: 六月天的安静 | 来源:发表于2017-07-17 19:33 被阅读193次

    一、使用OppenSSl构建私有CA的步骤
    1、生成私钥;
    # (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 1024)

    因为在默认配置文件中默认配置/etc/pki/CA/private/cakey.pem,所以指定目录和文件名要和配置文件一致。

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

    其中:-new:生成新证书签署请求; -x509:生成自签格式证书,专用于创建私有CA时; -key:生成请求时用到的私有文件路径; -out:生成的请求文件路径;如果自签操作将直接生成签署过的证书; -days:证书的有效时长,单位是day;

    Alt text
    Country Name (2 letter code) [XX]: # 两个字符表示的国家代码,CN为中国
    State or Province Name (full name) []: # 省或洲的完整名称
    Locality Name (eg, city) [Default City]: # 所在位置的名称(默认为城市)
    Organization Name (eg, company) [Default Company Ltd]: # 组织机构名称(默认为公司)
    Organizational Unit Name (eg, section) []: # 组织机构单元名称(eg.部门)
    Common Name (eg, your name or your server’s hostname) []: # 持有者名或者所在服务器主机名(即域名)
    Email Address []: # 管理员邮件地址,可以省略 Alt text
    Alt text
    Alt text

    涉及的配置文件:/etc/pki/tls/openssl.cnf

    工作目录:/etc/pki/CA/

    3、为CA提供所需的目录及文件;

    • # mkdir -pv /etc/pki/CA/{certs,crl,newcerts}
      当不存在时需要创建签发证书、吊销证书、新证书目录
    • # touch /etc/pki/CA/{serial,index.txt}
      创建证书序列号文件、证书索引文件
    • # echo 01 > /etc/pki/CA/serial
      第一次创建的时候需要给予证书序列号
    Alt text

    二、OpenSSL;服务申请证书签署实现SSL安全通信
    要用到证书进行安全通信的服务器,需要向CA请求签署证书;需要签署的服务无需和CA证书签署机构主机在同一台服务器上。此处以httpd服务为例进行演示,步骤如下:

    演示环境: httpd服务放置192.168.220.157主机(centos6上) 此处用yum安装httpd

    Alt text CA私有签机构放置192.168. 220.164主机(centos7上)
    Alt text
    1、 用到证书的服务器生成私钥;
    • # mkdir /etc/httpd/ssl
    • # cd /etc/httpd/ssl
    • # (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048) 生成私钥

    生成httpd服务的私钥创建时候无需在/etc/pki/CA创建,/etc/pki/CA目录仅在创建CA主机时候

    Alt text
    2.生成证书签署请求
    # openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365
    1. *.csr表示证书签署请求文件
    2. 要保证和签署机构CA签署机构信息一致
    Alt text
    3.将请求通过可靠方式发送给CA主机
    # scp /etc/httpd/ssl/httpd.csr root@192.168.220.164:/app/ Alt text
    4.在CA主机上签署证书
    # openssl ca -in/tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365
    • *.crt:表示证书文件
    • -days :签署证书的有效期 注意:此处需要自己去查看信息是否正确,并确定是否给予签署证书
    Alt text
    5.查看所签署的证书信息
    方法一:# cat /etc/pki/CA/index.txt Alt text
    • V:表示已经签署的
    • 01:表示证书序列号
    • /C=CN/ST=Beijing/O=… …: 表示主题信息(主题标示)

    方法二:查看证书中的信息(CA或者服务端均可):
    # openssl x509 -in /etc/pki/CA/certs/httpd.crt -noout -serial -subject

    • -serial :序列号
    • -subject:主题信息
    Alt text
    6.将CA签署机构的.crt证书发送给服务器
    # scp /etc/pki/CA/certs/httpd.crt root@172.16.249.210:/etc/httpd/ssl

    注意:第一次进行主机间基于ssh的scp操作会接收一个证书,Queue要你那认证

    Alt text
    7.删除服务器和CA主机上签署前的.csr文件,确保安全*
    httpd主机:# rm -rf /etc/httpd/ssl/httpd.csr

    CA主机:# rm -rf /tmp/httpd.csr

    三、OpenSSL:私有CA证书签署机构吊销证书
    1.客户端获取要吊销的证书的serial(在使用证书的主机上执行)
    # openssl x509 -in /etc/pki/CA/certs/httpd.crt -noout -serial -subject

    Alt text
    2.CA主机吊销证书
    • 先根据客户提交的serial和subject信息,对比其与本机数据库index.txt中存储的是否一致;
    • /etc/pki/CA/crets/*下生成证书后,会在/etc/pki/CA/newcrets/*`以对应证书命名为SERIAL.pem文件存放
    Alt text
    吊销:
    # openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
    • 其中SERIAL要换成证书真正的序列号:eg. 01.pem
    Alt text
    3.生成吊销证书的吊销编号(第一次吊销证书时执行)
    # echo 01 > /etc/pki/CA/crlnumber Alt text
    4.更新证书吊销列表
    # openssl ca -gencrl -out thisca.crl Alt text
    Alt text
    5.查看crl文件:
    # openssl crl -in /PATH/FROM/CRL_FILE.crl -noout -text Alt text

    相关文章

      网友评论

          本文标题:OpenSSL:实现创建私有CA、签署证书请求详解

          本文链接:https://www.haomeiwen.com/subject/jhgfkxtx.html