You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu系统下Thunderbird使用智能卡进行SMIME签名/加密出错

Ubuntu系统下Thunderbird使用智能卡进行SMIME签名/加密出错

我在Ubuntu上用Thunderbird发送签名或加密邮件时,弹出了无法访问私钥/证书的错误(错误截图如下):
Thunderbird智能卡签名错误

我已经完成了所有前置步骤:添加智能卡设备、导入CA证书,而且智能卡和证书在Thunderbird里都能正常显示。更奇怪的是,我用同一份证书的软证书(PEM格式)时,完全可以正常发送签名和加密邮件,但换成智能卡存储的同一份证书就失败了,提示无法访问私钥。

可能的解决思路和步骤

  • 检查PKCS#11模块的加载情况
    Thunderbird访问智能卡全靠PKCS#11模块,你不妨先检查下Thunderbird里是否正确加载了Smartcat-HSM对应的模块:打开Thunderbird的编辑 > 设置 > 隐私与安全 > 安全设备,看看列表里有没有你的智能卡模块。如果没有,点击「加载」,找到系统里的智能卡驱动库(一般是libpkcs11.so这类文件,可能在/usr/lib或者厂商提供的驱动目录里)。

  • 修复智能卡设备的访问权限
    Ubuntu普通用户有时候拿不到智能卡设备的访问权限,你可以这么操作:

    1. 先查看设备权限,在终端跑命令:ls -l /dev/usb/*(智能卡设备大多在这个路径)
    2. 如果看到权限是root专属,就把当前用户加入scard用户组:sudo usermod -aG scard $USER,注销重新登录后再试试。
  • 核对Thunderbird的SMIME配置
    打开Thunderbird的编辑 > 账户设置 > 安全,在「数字签名」和「加密」选项里,一定要选智能卡上的对应证书,别选成之前软证书的残留配置。也可以试试重置安全设备:在「安全设备」里删掉现有智能卡模块,重新加载一次。

  • 用系统工具验证私钥可用性
    先装个opensc工具包:sudo apt install opensc,然后用pkcs11-tool检查智能卡上的私钥能不能被系统识别:pkcs11-tool --list-objects --type privkey。如果能列出私钥,说明系统层面没问题,问题出在Thunderbird的配置;如果列不出来,那就是驱动或者权限的锅,得先解决这个。

  • 重启智能卡服务或更新组件
    有时候pcscd服务抽风也会导致这个问题,先重启试试:sudo systemctl restart pcscd。要是还不行,试试把Thunderbird更到最新稳定版,或者确认下智能卡驱动是不是适配当前Ubuntu版本的最新版。

备注:内容来源于stack exchange,提问作者James Blunt

火山引擎 最新活动