我有一个 id_rsa (我用来认证和加密的私钥以及插槽 9a 上的 yubikey piv smardcart 提供程序上的证书)现在我希望使用这个密钥来创建一个 pkcs12 密钥库(私钥 + 自签名证书)来签名jar 文件(android apk)通过 yubikey piv 上的其他插槽
我以这种方式创建了 pkcs 商店:
$ openssl req -new -key id_rsa -out server.csr
$ openssl x509 -req -days 3650 -in server.csr -signkey id_rsa -out server.crt
$ openssl pkcs12 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -in server.crt -inkey id_rsa -out server.crt.p12 -name "Singnin cert"
当我尝试通过以下方式将这些 pkcs12(或作为单独的密钥/证书)上传到插槽 9c 时:
导入密钥和证书,执行以下操作之一:
在插槽 9a 中导入密钥和证书(PEM 格式):
$ yubico-piv-tool -s 9a -a import-key -i key.pem $ yubico-piv-tool -s 9a -a import-certificate -i cert.pem
在插槽 9a 中导入密钥和证书(PKCS12 格式):
$ yubico-piv-tool -s 9a -a import-key -a import-cert -i key.p12 -K PKCS12
我得到错误
Enter Password:
Invalid public exponent for import (only 0x10001 supported)
Unable to import private key
附言。我使用管理密钥
我尝试将 id_rsa 转换为 pkcs8 或删除密码短语
谁能解释一下这个错误是什么?我有关于这个的谷歌,但没有运气
我的 idr_rsa
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,[some numbers I've cut]
YUBIKEY PIV 证书插槽
启用 PIV 的 YubiKey 拥有 4 个不同的证书插槽,如 PIV 标准文档中所述。这些插槽中的每一个都能够保存 X.509 证书及其随附的私钥。从技术上讲,这四个插槽非常相似,但它们用于不同的目的。
插槽 9a:PIV 身份验证 此证书及其关联的私钥用于对卡和持卡人进行身份验证。此插槽用于系统登录等操作。执行任何私钥操作都需要最终用户 PIN。成功提供 PIN 后,无需额外持卡人同意即可执行多个私钥操作。
插槽 9c:数字签名 此证书及其关联的私钥用于数字签名,以用于文档签名或签名文件和可执行文件。执行任何私钥操作都需要最终用户 PIN。每次签名操作前都必须提交 PIN,以确保持卡人参与生成的每个数字签名。
插槽 9d:密钥管理 该证书及其关联的私钥用于加密,以实现机密性。此插槽用于加密电子邮件或文件等。执行任何私钥操作都需要最终用户 PIN。成功提供 PIN 后,无需额外持卡人同意即可执行多个私钥操作。
插槽 9e:卡身份验证 此证书及其关联的私钥用于支持其他物理访问应用程序,例如通过启用 PIV 的门锁提供对建筑物的物理访问。执行此插槽的私钥操作不需要最终用户 PIN。
我读过了:
https://crypto.stackexchange.com/questions/3110/impacts-of-not-using-rsa-exponent-of-65537
https://crypto.stackexchange.com/questions/10809/openssl-rsa-how-many-public-exponents-are-possible
出于安全考虑,RSA 公共指数是否应该仅在 {3、5、17、257 或 65537} 中?
https://stackoverflow.com/questions/10736382/what-does-e-is-65537-0x10001-mean
附言。我有转储txt通过
$ openssl rsa -text -in id_rsa
并且有
publicExponent: 37 (0x25)
有没有办法将公共指数更改为 0x10001?还是我已经生成了新密钥;/和所有证书都从头开始?
ps2。
我已经挖出了这样一个关于可能性的文字,但没有进一步的解释