我想用CA和智能卡实现公钥认证。OpenSSH有自己的证书格式,不是x509。
我有一台服务器 (SSHD) 和一台客户端。我已经使用 CA 进行了公钥认证,现在我想将智能卡插入到等式中。我使用 ARX cryptokit 访问智能卡,并想将我的密钥和证书导入智能卡。当我单击“导入密钥”时,它说我需要 PKCS12 格式的证书才能导入。我尝试使用 Openssl 将我的 OpenSSH 证书和 RSA 私钥转换为 pkcs12,但它不接受我的证书。我看到它需要 PEM 编码,但我似乎无法实现它。
我的问题是:
- 如何将 OpenSSH 证书和密钥转换为 PKCS12?
- 我可以实际将智能卡与 OpenSSH 服务器、CA 和整个软件包一起使用吗?
提前致谢。
编辑:我会告诉你我写的命令,这样就不会产生任何误解
生成 CA 密钥 Ssh-keygen -t RSA -f CA
生成用户密钥 Ssh-keygen -t Rsa -f User
签名用户密钥 Ssh-keygen -s CA.priv -I Identity -n UserName -V +52W User.pub
现在输出是 user-cert.pub 我想将我的证书和私钥转换为 pkcs12 格式
Openssl pkcs12 -export -out certificate.pfx -inkey user.priv -in user-cert.pub -certfile CA-cert.pub
CA-cert.pub 是我生成的自签名证书,与生成用户密钥相同。
最后一个命令的输出是“无法加载证书”我尝试不使用“-certfile Ca-cert.pub”的最后一部分,但输出仍然相同。
希望有人有个主意。
答案1
OpenSSL 可以进行转换。
openssl pkcs12 -export -out servercert.p12 -inkey servercert.key -in servercert.crt -certfile CACert.crt
是的,你可以,但是你需要一些工具:
- 一个用于在低层与智能卡交互:CryptoAPI / OpenCT (Win/Ux)
- 一个用于处理智能卡上的内容(如 OpenSC)
- 执行身份验证的
- 一个用于处理证书等(OpenSSL,如上例所示)
- 使一切顺利的脚本(ps / perl)