You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下如何通过Token URI获取USB Token内的证书URI

Ubuntu下提取eToken证书URI供openconnect连接VPN操作指南

p11tool --list-tokens输出中Module字段为空,且Token携带Requires login标记,是查询不到内部证书的核心原因:p11-kit全局代理仅能识别到Token接入,未加载对应硬件驱动、未完成PIN认证时,无法读取Token内部存储的受保护对象。

操作步骤

  • 第一步:确认PKCS#11驱动路径
    安装SafeNet Authentication Client后,eToken对应的驱动库默认路径为/usr/lib/x86_64-linux-gnu/libeTPkcs11.so(32位系统路径为/usr/lib/libeTPkcs11.so),先执行ls 对应路径确认文件存在,不存在则重新安装Token官方客户端。
  • 第二步:带认证参数查询证书URI
    执行以下命令,替换对应参数后即可列出Token内所有证书:
    p11tool --provider=/usr/lib/x86_64-linux-gnu/libeTPkcs11.so \
    --list-all-certs \
    --login \
    "替换为p11tool --list-tokens输出的Token URL"
    
    执行时会交互式提示输入Token的用户PIN(注意不要输管理员SO PIN,SO PIN仅用于Token初始化管理,无法读取用户存储的证书),输入完成后即可输出所有证书的完整URI。

    若需要非交互式输入,可在命令中追加--set-pin=你的用户PIN参数,生产环境不建议明文写PIN。

  • 第三步:替代查询方案(p11tool异常时使用)
    不需要依赖p11tool,直接用系统NSS库配套的certutil工具即可查询,已通过modutil将Token加入NSS数据库的前提下,直接执行:
    certutil -d sql:$HOME/.pki/nssdb/ -L -h Soluti
    
    命令执行后会列出Token内所有证书对象,记录证书对应的昵称,openconnect支持直接通过短格式URI调用,不需要拼接完整PKCS#11路径,格式为pkcs11:token=Soluti;object=查到的证书昵称。

验证方法

拿到证书URI后,先执行以下命令验证URI有效性,避免VPN连接时报错:

p11tool --provider=/usr/lib/x86_64-linux-gnu/libeTPkcs11.so --login --export "你的证书URI" | openssl x509 -noout -subject

命令正常输出证书主题信息即代表URI有效,可直接填入openconnect连接配置。

额外注意:如果查询时使用--list-all参数代替--list-all-certs,会同时列出证书和绑定的私钥对象,直接选择带私钥标记的对象URL填入openconnect即可,避免后续连接时出现找不到对应私钥的报错。

内容的提问来源于stack exchange,提问作者Matheus Correia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 12:06:51