若用户开启MindIE Server的TLS认证功能(HTTPS或GRPC)时,通信客户端需要校验服务端证书的IP,由于PodIP的动态性,需要在Pod启动时生成具有PodIP别名的服务证书,以实现MindIE Server中PD节点间的通信,以及MindIE MS对MindIE Server的证书认证和校验。MindIE提供证书生成能力,具体操作步骤如下所示。
建议用户在运行环境中的各个计算节点准备和配置证书,提升服务安全性。
此方法只适用于使用自签名CA证书进行证书签发的场景。
需要按照以下方法准备MindIE Server、MindIE Controller和MindIE Coordinator三套证书。
准备MindIE Server服务端数据面和管理面的CA证书和加密私钥
cat > ca.conf <<-EOF
配置文件ca.conf示例如下,其中req_distinguished_name中的字段需要自行配置:
[ req ] distinguished_name = req_distinguished_name prompt = no [ req_distinguished_name ] C = CN ST = Sichuan L = Chengdu O = Huawei OU = Ascend CN = MindIE [ v3_ca ] subjectKeyIdentifier = hash authorityKeyIdentifier = keyid:always,issuer basicConstraints = critical, CA:true keyUsage = critical, digitalSignature, cRLSign, keyCertSign EOF
openssl genrsa -aes256 -out ca.key.pem 4096
Enter pass phrase for ca.key.pem: Verifying - Enter pass phrase for ca.key.pem:
出于安全考虑,以及后续导入证书的要求,用户输入的私钥口令的复杂度必须符合以下要求:
chmod 400 ca.key.pem
openssl rsa -in ca.key.pem
根据回显输入1.c设置的私钥口令,然后按回车键,当显示私钥内容时表示ca.key.pem私钥文件生成成功。
openssl req -out ca.csr -key ca.key.pem -new -config ca.conf -batch
chmod 600 ca.csr
openssl req -in ca.csr -noout -text
openssl x509 -req -in ca.csr -out ca.pem -sha256 -days 7300 -extfile ca.conf -extensions v3_ca -signkey ca.key.pem
openssl x509 -in ca.pem -noout -text
chmod 400 ca.pem
导入自签名CA证书和加密私钥
cd /{MindIE安装目录}/mindie-service/
python3 ./scripts/config_mindie_server_tls_cert.py ./security/ca import_cert {证书文件路径} {加密私钥文件路径}
参数解释:
在回显时输入生成CA密钥时设置的口令:
Password for private key file: Retype password for private key file:
{ "ca_cert": "./security/ca/ca.pem", "ca_key": "./security/ca/ca.key.pem", "ca_key_pwd": "./security/ca/ca_passwd.txt", "cert_config": "./cert_info.json", "output_path": "./gen_cert_output", "kmc_ksf_master": "./tools/pmt/master/ksfa", "kmc_ksf_standby": "./tools/pmt/standby/ksfb" }
{ "subject": "subject_name", "expired_time": 3650, "serial_number": 123, "req_distinguished_name": { "C": "***", "ST": "***", "L": "***", "O": "***", "OU": "***", "CN": "***" }, "alt_names": { "IP": [], "DNS": [] } }
cp /mnt/security/ca.pem $MIES_INSTALL_PATH/security/ca cp /mnt/security/ca.key.pem $MIES_INSTALL_PATH/security/ca cp /mnt/security/ca_passwd.txt $MIES_INSTALL_PATH/security/ca cp /mnt/security/gen_cert.json $MIES_INSTALL_PATH cp /mnt/security/cert_info.json $MIES_INSTALL_PATH cp -r /mnt/security/tools $MIES_INSTALL_PATH/ chmod 500 ./bin/gen_cert mkdir gen_cert_output python3 ./scripts/config_mindie_server_tls_cert.py ./ gen_cert ./gen_cert.json --ip=$MIES_CONTAINER_IP,{host_ip} chmod 400 ./gen_cert_output/* // 拷贝生成的证书到特定的路径 cp ./gen_cert_output/cert.pem /home/{用户名称}/Ascend/mindie/latest/mindie-service/security/certs/server.pem cp ./gen_cert_output/cert.key.pem /home/{用户名称}/Ascend/mindie/latest/mindie-service/security/keys/server.key.pem cp ./gen_cert_output/cert_passwd.txt /home/{用户名称}/Ascend/mindie/latest/mindie-service/security/pass/mindie_server_key_pwd.txt rm -rf ./gen_cert_output/* // 下面使用其他证书配置(gen_cert_xxx.json, cert_info_xxx.json)重复上述步骤继续导入其他证书 // cp /mnt/security/gen_cert_xxx.json $MIES_INSTALL_PATH // cp /mnt/security/cert_info_xxx.json $MIES_INSTALL_PATH // python3 ./scripts/config_mindie_server_tls_cert.py ./ gen_cert ./gen_cert_xxx.json --ip=$MIES_CONTAINER_IP,{host_ip}
{host_ip}:仅MindIE MS调度器(Coordinator)需要配置,配置为提供推理API的物理机IP。