Canokey使用PIV解锁bitlocker
Windows支持使用智能卡作为bitlocker的解锁设备,自然Canokey也不例外,具体过程如下。
安装yubico-piv-tool
1 |
|
验证能否正常读取:
1 |
|
我已经把证书导入了9a插槽,输出结果大致如上。
有一点需要注意。在Windows系统中,如果你之前执行了gpg --card-status
查看opengpg模块,那么可能会遇到这种情况:
1 |
|
解决方法很简单,重新插拔Canokey物理密钥,然后再执行即可。猜测执行gpg --card-status
后PCSC端口被占用,导致yubico-piv-tool读取智能卡失败。
Linux中也存在类似现象。执行yubico-piv-tool -r canokeys -a status
后,第一次运行gpg --card-status
会提示gpg: OpenPGP card not available: General error
,只需再执行一次gpg --card-status
就正常了。
创建证书
创建openssl配置文件。名字随意,比如2.cnf
:
1 |
|
解释(参考:使用OpenSSL工具生成CSR文件):
- C:Country Name,国家名称,例如:CN。(可选)
- ST:State or Province Name,州或省的名称,例如:JiangSu。(可选)
- L:Locality Name,城市名称,例如:NanJing。(可选)
- O:Organization Name,公司名称,例如:CMCC。(可选)
- OU:Organizational Unit Name,部门名称,例如:06DC-esight。(可选)
- CN:Common Name,证书使用者的名称,填写访问的具体域名,不支持通配符场景。
保存后,在当前目录执行
1 |
|
即可得到server.pfx文件,这正是我们想要的。
需要注意,上面的配置文件中不要试图用req_extensions把extendedKeyUsage和keyUsage放进配置文件,实测无效。按照Missing X509 extensions with an openssl-generated certificate说法,
Extensions in certificates are not transferred to certificate requests and vice versa
有几种变通方式,本文中使用了 -addext 进行追加。可以输出 server.csr 验证是否成功添加:
1 |
|
可见 extendedKeyUsage 与 extendedKeyUsage 已经被正确添加到证书中。
导入Canokey
1 |
|
至此Canokey就可以插到Windows电脑上用于设置解锁bitlocker了。在Windows系统中,使用自签证书需要修改注册表键值,可以参考Canokey PIV 应用之 Bitlocker 磁盘加密和Setting Up BitLocker with YubiKey as Smart Card,讲得很具体。