下载
中文
注册

config_mindie_server_tls_cert.py

脚本功能

EndPoint开启HTTPS时,使用该脚本对证书进行管理,主要功能如下:

  • 对CA证书进行导入/更新、删除。
  • 对服务证书,私钥进行导入/更新、删除。
  • 对吊销列表进行导入/更新。
  • 生成CA证书。
  • 查询已导入的CA证书,服务证书,吊销列表详情信息。

参数说明

参数类型

参数名

参数说明

位置参数

<project_path>

软件包安装路径。

位置参数

<sub_command>

子命令类型,包括[gen_cert, import_ca, delete_ca, import_cert, delete_cert, import_crl, query],分别对应生成证书,导入CA证书,删除CA证书,导入服务证书和私钥,删除服务证书和私钥,导入更新吊销列表,查询已导入证书信息。各个子命令的使用方法请参见使用指南

选项参数

--business

需要证书管理业务类型,默认为HTTPS证书,可以设置为[management, grpc],分别对应HTTPS management证书和GRPC证书。

选项参数

--ip

证书的IP,如果不设置证书,则使用None代替。

证书校验规则

  • 验签证书CA校验规则如下:
    #1. 是否属于X509v3证书,不是则直接退出。
    #2. 证书是否过期,过期则直接退出。
    #3. 签名算法是否为sha256WithRSAEncryption和sha512WithRSAEncryption,不是则有告警提示。
    #4. 是否为签名证书(存在CA Flag Digital Signature Certificate cRLSign字段),不是则有告警提示。
    #5. RSA密钥算法是否长度 >= 3072,不是则直接退出。
  • 验证服务证书Cert校验规则如下:
    #1. 格式是否为X509v3,不是则直接退出。
    #2. 签名算法是否是sha256WithRSAEncryption和sha512WithRSAEncryption,不是则有告警提示。
    #3. RSA密钥算法长度是否 >= 3072,不是则直接退出。
    #4. 是否包含Certificate Signature和cRLSign字段,不是则有告警提示。
    #5. 证书是否过期。
    #6. 证书和私钥是否匹配。
  • 验证吊销列表校验规则如下:
    #1. crl列表是否为空,为空则直接退出。
    #2. 吊销列表是否过期,过期则直接退出。

前置配置

# 缺失的包
pip3 install pyOpenSSL

# 开启日志
export MIES_CERTS_LOG_TO_FILE=1
export MIES_CERTS_LOG_TO_STDOUT=1

# 日志配置
export MIES_CERTS_LOG_LEVEL=INFO
export MIES_CERTS_LOG_PATH=/workspace/log/certs.log   # 文件当前需要通过umask为0077指定为0600

使用指南

  • 生成证书。
    cd /{MindIE安装目录}/mindie-service/ #进入mindie-service安装目录
    python3 scripts/config_mindie_server_tls_cert.py 软件包安装目录 gen_cert CA证书配置文件路径 --ip 证书ip
    # 样例 
    python3 scripts/config_mindie_server_tls_cert.py /home/Ascend-mindie-service_{version}_linux-{arch} gen_cert /home/Ascend-mindie-service_{version}_linux-{arch}/conf/gen_cert.json --ip=1.1.1.1,2.2.2.2
  • 对CA证书进行导入/更新。
    python3 scripts/config_mindie_server_tls_cert.py 软件包安装目录 import_ca CA文件列表(不超过5个)
    # 样例 
    python3 scripts/config_mindie_server_tls_cert.py /home/Ascend-mindie-service_{version}_linux-{arch} import_ca /home/ca.pem /home/ca2.pem
  • 对已导入的CA文件进行删除。
    python3 scripts/config_mindie_server_tls_cert.py 软件包安装目录 delete_ca CA文件名称列表(不超过5个)
    # 样例 
    python3 scripts/config_mindie_server_tls_cert.py /home/Ascend-mindie-service_{version}_linux-{arch} delete_ca ca.pem ca2.pem
  • 对服务证书,私钥进行导入/更新(会在弹窗中进行私钥口令输入)。
    python3 scripts/config_mindie_server_tls_cert.py 软件包安装目录 import_cert 服务证书路径 服务私钥路径
    # 样例 
    python3 scripts/config_mindie_server_tls_cert.py /home/Ascend-mindie-service_{version}_linux-{arch} import_cert /home/server.pem /home/server.key.pem
  • 对服务证书,私钥进行删除。
    python3 scripts/config_mindie_server_tls_cert.py 软件包安装目录 delete_cert
    # 样例 
    python3 scripts/config_mindie_server_tls_cert.py /home/Ascend-mindie-service_{version}_linux-{arch} delete_cert --cert_file=server.pem --key_file=server.key.pem

    参数解释:

    --cert_file:客户端证书文件路径;

    --key_file:客户端私钥文件路径。

  • 对吊销列表进行导入/更新,crl配套CA文件列表中的第一个CA文件。
    python3 scripts/config_mindie_server_tls_cert.py 软件包安装目录 import_crl 吊销列表文件路径
    # 样例 
    python3 scripts/config_mindie_server_tls_cert.py /home/Ascend-mindie-service_{version}_linux-{arch} import_crl /home/server_crl.pem
  • 生成CA证书。
    python3 scripts/config_mindie_server_tls_cert.py 软件包安装目录 gen_cert 配置文件的路径 --ip=IP地址
    # 样例 
    python3 scripts/config_mindie_server_tls_cert.py /home/Ascend-mindie-service_{version}_linux-{arch} gen_cert /home/config.json --ip=1.1.1.1
  • 查询导入的CA证书,服务证书,吊销列表文件详情。
    python3 scripts/config_mindie_server_tls_cert.py 软件包安装目录 query
    # 样例 
    python3 scripts/config_mindie_server_tls_cert.py /home/Ascend-mindie-service_{version}_linux-{arch} query --cert_file=server.pem --crl_file=server_crl.pem

    参数解释:

    --crl_file:客户端吊销列表路径。

  • HTTPS使用三面隔离时,https的业务面和管理面不建议使用同一套安全证书,使用同一套安全证书会导致存在较高的网络安全风险。
  • HTTPS和GRPC不建议使用同一套安全证书,使用同一套安全证书会导致存在较高的网络安全风险。
  • 导入证书时,对于用户导入的CA文件证书工具要求的权限为600,服务证书文件证书工具要求的权限为600,私钥文件证书工具要求的权限要求为400,吊销列表证书工具要求的权限为600。