trustd
又称:证书信任
简要回答
trustd是macOS中判断证书是否可信的进程。App建立的每个安全连接,以及许多代码签名检查,都会请trustd验证证书链,并在需要时检查证书是否已被吊销。
你很少注意到它,因为结果都会被缓存。当大量连接同时开始、吊销检查需要通过网络进行,或者检查迟迟得不到回应时,trustd才会显露出来。
最有名的一次发生在2020年11月macOS Big Sur发布当天:Apple一台负责回应吊销检查的服务器变慢了,各地的Mac在trustd等待回应时打开App都很慢。
本页内容
trustd为什么在占用CPU或网络
一下子出现大量新的安全连接,比如浏览器打开很多网站,或App与许多服务器同步,就意味着有很多证书要检查。macOS更新后,它的缓存是空的,所以会把之前存过的内容再检查一遍。
trustd持续高CPU占用并不常见。这可能来自拦截安全连接的软件,例如某些杀毒软件、VPN或网络过滤工具,它们会为每个连接出示自己的证书。
怎么处理
如果只是短暂的峰值,什么都不用做:连接检查完后它就会平静下来。如果是持续的占用,就退出过滤或检查流量的App,看看它是否平静下来。如果是,就应该去那个App的设置或开发商那里解决。
不要用防火墙屏蔽trustd。没有它,App会连不上或打开很慢,2020年的那次故障就证明了这一点。
如何查看trustd在做什么
你会看到不止一个trustd。一个以_trustd系统账户运行,一个以你的身份运行,还有一些系统服务有自己的trustd。
- 打开活动监视器,选取“显示”→“所有进程”,然后在搜索栏中输入
trustd。“用户”列显示每个进程为哪个账户服务。 - 在“CPU”标签页中,记下哪个实例在忙。如果是你用户名下的那个,说明是你正在使用的某个App在建立连接。
- 点按“网络”标签页。如果trustd反复收发少量数据,说明它正在向证书服务器检查吊销状态。
- 要查看它在和哪些服务器通信,打开“终端”并运行
nettop -p trustd。按下q退出。 - 要看它自己的消息,运行
log stream --predicate 'process == "trustd"'。关于同一个证书或服务器的错误反复出现,指向的就是背后的App或网络。按下Control-C停止。
trustd的正常占用与异常情况
正常:打开浏览器、登录账户,或安装并打开新软件时短暂活跃,然后安静下来。吊销检查的结果会被缓存,所以在缓存的结果过期之前,同一个证书不会再通过网络检查。
值得检查:它长时间保持忙碌,或者App打开很慢、连接失败。常见原因有:
- 会检查加密流量并为每个网站签发自己证书的软件,例如某些杀毒软件、VPN和网络过滤工具。
- 屏蔽或拖慢吊销服务器的网络,例如登录之前的Wi-Fi认证页面,或严格的公司防火墙。
- Mac上的日期和时间不对,让有效的证书看起来已过期或尚未生效。在“系统设置”→“通用”→“日期与时间”中打开“自动设置时间和日期”。
trustd会连接哪些服务器
Apple在其企业网络要求列表中公布了设备进行证书检查所需的主机,包括ocsp.apple.com、ocsp2.apple.com、valid.apple.com、crl.apple.com和certs.apple.com,还有其他证书颁发机构运营的几个吊销服务器。
如果你使用防火墙App,或管理着出站规则严格的网络,这些就是你会看到的trustd连接,也是需要放行的连接。
常见问题
Mac上的trustd是什么?
它是macOS中检查证书是否可信的进程,用于安全连接和代码签名。它是macOS安全机制的一部分,不应被移除或屏蔽。
trustd为什么占用这么多CPU?
通常是一下子出现大量新的安全连接,或者更新后缓存在刷新,这会自行平息。如果一直很高,常见原因是会检查加密流量的工具,例如某些杀毒软件或VPN软件。
可以在防火墙中屏蔽trustd吗?
不应该。App要靠它来信任所连接的服务器,屏蔽它会让App打开很慢或无法连接。
trustd安全吗?
安全。它是macOS安全机制的一部分,由Apple签名,位于/usr/libexec/trustd,处在磁盘上只有Apple更新才能更改的密封区域中。它负责检查证书,不会收集你的数据。
trustd为什么连接ocsp.apple.com?
它在询问某个证书是否已被吊销。Apple把ocsp.apple.com列为设备验证证书时必须能访问的主机之一,所以这个连接是正常的。
相关条目
想找比活动监视器更好的工具?请看Mac上最好用的活动监视器替代品,或者浏览术语表中的所有条目。