导入TLS证书
证书导入目的
证书导入是为了生成证书配置根目录。
- TLS开启(“enable_tls”=True)时,证书配置根目录(绝对路径)作为必选参数tls_option_top_path用于如下接口:
mindio_ttp.framework_ttp.tft_start_controller(bind_ip: str, port: int, enable_tls=True, tls_option_top_path='') mindio_ttp.framework_ttp.tft_init_processor(rank: int, world_size: int, enable_local_copy: bool, enable_tls=True, tls_option_top_path='', enable_uce=True, enable_arf=False)
- TLS关闭(“enable_tls”=False)时,tls_option_top_path无效,无需配置。此开关不影响MindIO TFT特性功能。

- 如果关闭TLS(即“enable_tls”=False时),会存在较高的网络安全风险。
- tft_start_controller和tft_init_processor的enable_tls开关状态需要保持一致。若两个接口enable_tls开关不同,会造成以下问题:
- 模块间TLS建链失败。
- MindIO TFT无法正常运行,训练拉起失败。
TLS证书准备
MindIO TFT不提供数字证书、CA证书和密钥。TLS根目录配置前,需自行准备如下文件用于导入:
条目 |
说明 |
---|---|
CA证书 |
证书颁发机构(CA)签发的证书,用于验证服务器证书和客户端证书的可信度。CA证书是信任链的基础,可以是根证书或中间证书。扩展名为*.pem。 |
Server侧证书 |
包含服务器的公钥和由CA签发的服务器证书。它用于在TLS连接中验证服务器的身份,并加密传输的数据。客户端会使用CA证书来验证服务器证书的真实性。扩展名为*.pem。 |
Server侧私钥 |
服务器的私钥,配合服务器证书使用。私钥用于解密客户端发送的加密数据,并用于在TLS握手过程中证明服务器的身份。该文件必须严格保密,不能泄露给任何第三方。私钥文件必须被口令加密,且需满足口令复杂度要求,安装者需掌握这个私钥文件的口令。扩展名为*.pem。 |
吊销证书列表文件 |
包含由CA发布的已被吊销的证书列表。服务器和客户端可以使用CRL来检查某个证书是否已被吊销,从而决定是否信任该证书。CRL用于维护证书的有效性和安全性,防止使用已吊销的证书进行通信。扩展名为*.pem。 说明:
如果提供吊销列表,要求各级CA均提供吊销列表。 |

证书安全要求:
- 需使用业界公认安全可信的非对称加密算法、密钥交换算法、密钥长度、Hash算法、证书格式等。
- 应处于有效期内。
TLS证书导入步骤
- 客户证书准备。
将CA证书、Server侧证书、Server侧私钥、吊销证书列表文件权限置为600,防止导入过程中发生篡改。
chmod -R 600 {CA证书路径} chmod -R 600 {Server侧证书路径} chmod -R 600 {私钥路径} chmod -R 600 {吊销证书列表文件路径}
- 证书部署工具准备。
解压缩发布的证书部署脚本工具,并将加密库权限置为500,防止篡改。
tar -pzxvf security_tool_{arch}.tar.gz cd security_tool chmod 500 bin/seceasy_encrypt
- 导入CA证书。每次支持导入1~5张证书,以空格间隔。最多支持20张CA证书同时生效。
python3 tftf_security_tool_tls_cert.py import_ca -d {证书配置根目录} -f {CA证书路径} [{CA证书路径2} {CA证书路径3} {CA证书路径4} {CA证书路径5}]
- 导入Server侧证书和密钥。
python3 tftf_security_tool_tls_cert.py import_cert {证书配置根目录} {Server侧证书路径} {Server侧私钥路径}
需根据提示输入私钥密码。
密码需具有健壮性并保密,请勿使用弱口令,关于口令复杂度的要求,请参见口令复杂度要求章节。
- 导入CRL文件。每次支持导入1~5个CRL文件,以空格间隔。最多支持20个CRL文件同时生效。
python3 tftf_security_tool_tls_cert.py import_crl -d {证书配置根目录} -f {吊销证书列表文件路径} [{吊销证书列表文件路径2} {吊销证书列表文件路径3} {吊销证书列表文件路径4} {吊销证书列表文件路径5}]
- (可选)适配证书属主和权限。
如果证书导入脚本执行账户与证书实际使用账户不一致,则需要修改证书的属主和权限,保证证书实际使用者有读取权限,避免证书使用者无法读取证书文件、证书配置根目录及其子目录,导致TLS开启失败。
修改目录下全部文件的属主:
chown -R {证书实际使用账户}[:{证书实际使用账户所属Group}] {证书配置根目录}
- 证书、密钥相关文件和目录的权限应不大于600,避免敏感信息被未授权用户窃取或篡改。
- 证书配置根目录下只能包含TLS配置所需文件/目录,不应包含其他无关目录/文件,禁止存放软链接。
其他功能
- 查询文件。
python3 tftf_security_tool_tls_cert.py query {证书配置根目录}
- 删除CA证书,每次支持删除1~5张CA证书,使用空格间隔。
python3 tftf_security_tool_tls_cert.py delete_ca -d {证书配置根目录} -f {CA证书路径} [{CA证书路径2} {CA证书路径3} {CA证书路径4} {CA证书路径5}]
- 删除Server侧证书。
python3 tftf_security_tool_tls_cert.py delete_cert {Server侧证书所在目录}