中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

证书签发

  1. CA服务器搭建。
    1. 选择一台服务器作为根证书服务器,并进行CA签发证书目录环境准备。
      mkdir -p /home/ca_server
      cd /home/ca_server/
      mkdir demoCA
      cp /etc/pki/tls/openssl.cnf ./
      mkdir ./demoCA/newcerts  ./demoCA/private ./demoCA/certs
      chmod 777 ./demoCA/private/
      echo 01 > ./demoCA/serial
      touch ./demoCA/index.txt
    2. 修改openssl.cnf文件中CA_default选项中的dir目录为CA服务器的目录。
      1. 将dir设置为“/home/ca_server/demoCA/”
        vi openssl.cnf

      2. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    3. 生成CA私钥和根证书,证书有效期建议选择为30年,例如-days 10950
      openssl genrsa  -out ca.key 3072
      openssl req -new -x509 -days 10950 -sha1 -extensions v3_ca  -key ca.key  -out ca.crt   -subj "/C=CN/ST=shenzhen/L=shenzhen/O=Huawei/OU=Huawei/CN=CA1"  -config ./openssl.cnf
      cp ca.key demoCA/private/cakey.pem
      cp ca.crt demoCA/cacert.pem
    4. 确认CA证书,观察是否为CA:TRUE。
      openssl x509 -in ca.crt -noout -text

  2. 证书签发。

    执行完导出证书请求文件后,会将节点的证书请求文件传输到远端CA服务器对应的签发路径下。前缀为导出证书请求文件的MAC地址。

    MAC地址的获取方式为:ifconfig | grep ether | awk 'NR==1' | awk '{print $2}' ,如68:4x:xx:xx:xx:aa,mac_address为该结果删除:后的字符串。

    [root@agent3]# ll /home/ca_server/
    total 32K
    -rw------- 1 root root 1.5K Nov 17 09:07 844xxxxxxxbbtarget.csr
    -rw-r--r-- 1 root root 1.7K Nov 17 10:24 ca.crt
    -rw------- 1 root root 2.5K Nov 17 10:24 ca.key
    drwxr-xr-x 5 root root 4.0K Nov 17 15:32 demoCA
    -rw-r--r-- 1 root root  11K Nov 17 10:23 openssl.cnf
    • 手动签发
      在CA服务器证书签发路径下,执行证书签名的命令如下,分别签发haf_user和daemon的证书:
      openssl ca -policy policy_anything  -extensions v3_req -out 844xxxxxxxbbtarget.crt  -config openssl.cnf -days 10950 -cert ca.crt -keyfile ca.key -infiles 84xxxxxxx2bbtarget.csr
      表1 openssl证书签发命令参数

      选项

      取值

      -out

      输出的证书文件。

      说明:

      该证书文件名的前缀必须与输出的证书请求文件一致。

      -config

      配置文件。

      -days

      证书有效期,单位:天。

      -cert

      用于签发的根CA证书。

      说明:

      该证书的名字需命名为ca.crt,用于后续导入步骤使用。

      -keyfile

      CA的私钥证书文件。

      -infiles

      需要进行处理的证书请求文件。

      说明:

      该证书对应步骤中导出的证书请求文件,命名需保持一致。

    • 自动签发

      可通过脚本的方式实现证书的自动签发,主要功能和参考实现如下:

      1. 实时监测证书产生目录下是否有新产生的csr文件。
      2. 有新的csr就对其进行签发,并在当前目录下产生相同前缀的.crt文件。如service.csr,则对应的crt为service.crt。证书有效期建议选择为30年,例如-days 10950
        #监测目录下是否有新产生的csr文件,并进行签名
        cert_path=/home/ca_server/
        inotifywait -m -e create "${cert_path}"| while read path action file
        do
            if [[ "$file" =~ .*csr$ ]]; then # Does the file end with .csr?
                echo "Find new csr file "
                cert_name=$path$file
                echo ${cert_name}
                prefix_name="${cert_name%.*}"
                echo ${prefix_name}
                cd ${cert_path}
                openssl ca -batch -policy policy_anything -extensions v3_req  -out $prefix_name.crt -days 10950 -config ${cert_path}/openssl.cnf -cert ${cert_path}/ca.crt -keyfile ${cert_path}/ca.key -infiles ${cert_name}
            rm -rf ${cert_name}
            fi
            echo "End"
        done
      3. 若启动上述证书自动签发脚本,则导出后,可以直接在证书签发路径下获取到签发后的证书。CA服务器上相应的证书请求文件会自动被删除。
        [root@ca_server]# ll /home/ca_server/
        total 40K
        -rw-r--r-- 1 root root 5.6K Nov 17 15:44 8446fe73b2bbtarget.crt
        -rw-r--r-- 1 root root 1.7K Nov 17 10:24 ca.crt
        -rw------- 1 root root 2.5K Nov 17 10:24 ca.key
        drwxr-xr-x 5 root root 4.0K Nov 17 15:44 demoCA
        -rw-r--r-- 1 root root  11K Nov 17 10:23 openssl.cnf
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词