MindIO ACP已经安装成功。
证书安全要求:
MindIO ACP不提供数字证书、CA证书、密钥、吊销证书列表文件,需自行准备表1所列文件。
文件 |
说明 |
---|---|
CA文件 |
证书颁发机构(CA)签发的证书,用于验证服务器证书和客户端证书的可信度。CA证书是信任链的基础,可以是根证书或中间证书。格式为:PEM(*.pem)。需要与Server端的CA文件相同。 |
Client端的证书 |
由CA签发的证书,保证在有效期内。它用于在TLS连接中验证服务器的身份,并加密传输的数据。服务端会使用CA证书来验证客户端证书的真实性。格式为:PEM chain(*.pem)。 |
Client端的证书对应的私钥文件 |
要与Client端证书对应。私钥用于解密服务端发送的加密数据,并用于在TLS握手过程中证明服务端的身份。该文件必须严格保密,不能泄露给任何第三方。安装者要知道这个私钥文件的口令。格式为:PEM encrypted(*.pem)。 |
seceasy_encrypt文件 |
安全加密工具。可参见表1。 |
吊销证书列表文件 |
包含由CA发布的已被吊销的证书列表。服务器和客户端可以使用CRL来检查某个证书是否已被吊销,从而决定是否信任该证书。CRL用于维护证书的有效性和安全性,防止使用已吊销的证书进行通信。扩展名为*.pem。如无吊销证书,则可以不准备。 |
同一个用户可以使用多个不同的证书。一个用户首次准备Client证书时,需要进行此步操作,之后再次为此用户准备证书时,不需要再次准备加密仓目录。
mkdir ~/crypt_repo chmod 0700 ~/crypt_repo
cp {安装包解压路径}/seceasy_encrypt ~/crypt_repo/ chmod 0500 ~/crypt_repo/seceasy_encrypt
为了防止Client端私钥的口令泄露,对口令进行加密后保存在文件中用于给Client进程使用。
cd ~/crypt_repo/ ./seceasy_encrypt --encrypt 1 2
please input the password to encrypt {私钥口令} please input the password to encrypt again {私钥口令} encrypted: {Base64-Encoded-Data}
连续两次输出相同的私钥口令后,工具输出Base64编码后的数据。
复制上一步输出的Base64编码数据,保存到一个新文件中作为口令文件。
echo "{Base64-Encoded-Data}" > password.txt
修改框架代码,在使用MindIO ACP服务之前初始化。
torch_mindio.initialize(tls_open=True, # 此参数设置为True,表示启动TLS认证 cert_path='/home/certs/client.pem', # 此参数设置为Client证书的路径 ca_path='/home/certs/ca.cert', # 此参数设置为CA的路径 pri_key_path='/home/keys/client_key.pem', # 此参数设置为私钥的路径 key_pass_path='{user.homedir}/crypt_repo/password.txt', # 此参数设置为加密仓目录中的口令文件 pmt_path='{user.homedir}/crypt_repo/tools/pmt', # 此参数设置为加密仓目录中的tools/pmt路径 crl_path='/home/certs/crl.crl' # 此参数设置为吊销证书路径,可选 )
Client端要使用TLS功能,需要依赖一个环境变量,在启动Client进程的时候,需要提前设置环境变量,例如:
export HSECEASY_PATH={Python安装目录}/lib/python3.7/site-packages/torch_mindio
路径请修改为torch_mindio实际安装路径。