我必须开发一个使用另一个应用程序来生成 CSR 的应用程序。生成 CSR 后,我必须将此 CSR 连同公钥的 SHA256 哈希一起提供给 CA。问题是生成 CSR 的应用程序不生成哈希。
如何生成哈希码?
我可以使用这个特定的 CSR 创建一个密钥库对象,然后从中提取哈希吗?
或者任何人都可以建议任何其他技术?
我必须开发一个使用另一个应用程序来生成 CSR 的应用程序。生成 CSR 后,我必须将此 CSR 连同公钥的 SHA256 哈希一起提供给 CA。问题是生成 CSR 的应用程序不生成哈希。
如何生成哈希码?
我可以使用这个特定的 CSR 创建一个密钥库对象,然后从中提取哈希吗?
或者任何人都可以建议任何其他技术?
您的问题缺少一些细节,例如您正在使用什么语言进行开发,如果您需要以编程方式执行此操作,或者是否可以选择命令行 OpenSSL。
您可以使用以下 OpenSSL 命令行来执行此操作(我确信 OpenSSL C 库有等效的方法)。
# Extract public key from CSR
openssl req -noout -in my.csr -pubkey > pubkey.pem
# Convert public key to DER format
openssl rsa -in pubkey.pem -outform der -out pubkey.der
# Take the SHA256 hash of the public key
openssl dgst -sha256 pubkey.der