2.14. 配置支持 mutual TLS 的 NFS 客户端
从 Red Hat Enterprise Linux 9.6 开始,如果服务器支持带有 TLS 加密的 NFS,您可以将 NFS 服务器和客户端配置为使用 TLS 协议相互进行身份验证。
先决条件
- 您已使用 TLS 加密配置了 NFS 服务器。详情请参阅 配置支持 TLS 的 NFS 服务器。
-
已安装
ktls-utils软件包。
流程
创建私钥和证书签名请求(CSR):
# openssl req -new -newkey rsa:4096 -noenc \ -keyout /etc/pki/tls/private/client.example.com.key \ -out /etc/pki/tls/private/client.example.com.csr \ -subj "/C=US/ST=State/L=City/O=Organization/CN=client.example.com" \ -addext "subjectAltName=DNS:client.example.com,IP:192.0.2.2"重要通用名称(CN)和 DNS 必须与主机名匹配。IP 必须与主机的 IP 匹配。
-
将
/etc/pki/tls/private/client.example.com.csr文件发送到证书颁发机构(CA)并请求客户端证书。将收到的 CA 证书和客户端证书存储在主机上。 将 CA 证书导入到系统的信任存储中:
# cp ca.crt /etc/pki/ca-trust/source/anchors # update-ca-trust将客户端证书移到
/etc/pki/tls/certs/目录中:# mv client.example.com.crt /etc/pki/tls/certs/确保 SELinux 上下文在私钥和证书上正确:
# restorecon -Rv /etc/pki/tls/certs/将客户端证书和私钥添加到
/etc/tlshd.conf文件的[authenticate.client]部分:x509.certificate= /etc/pki/tls/certs/client.example.com.crt x509.private_key= /etc/pki/tls/private/client.example.com.key保留
x509.truststore参数未设置。启用并启动
tlshd服务:# systemctl enable --now tlshd.service使用 TLS 加密挂载 NFS 共享:
# mount -o xprtsec=mtls server.example.com:/nfs/projects/ /mnt/
验证
验证客户端是否成功挂载了带有 TLS 支持的 NFS 共享:
# journalctl -u tlshd … Apr 01 08:37:56 client.example.com tlshd[10688]: Handshake with server.example.com (192.0.2.1) was successful