小编Ale*_*lex的帖子

使用 openSSL 生成自签名 RSA-2048-SHA-256 证书 PFX 文件

我正在尝试创建一个自签名 RSA-2048-SHA-256 证书 PFX 文件,以便在我的 WCF 请求中使用它进行数据签名。

我使用了一些 openSSL 示例来创建证书 PFX 文件,但即使我将 SHA 算法设置为 256,当我在我的 .net 应用程序中加载它时,我看到该证书的私钥具有以下设置:

KeyExchangeAlgorithm = RSA-PKCS1-KeyEx

SignatureAlgorithm = http://www.w3.org/2000/09/xmldsig#rsa-sha1
Run Code Online (Sandbox Code Playgroud)

当我使用下面的代码来使用此证书时,我收到“无效算法指定的异常”,但如果我将 SHA256CryptoServiceProvider 更改为 SHA1CryptoServiceProvider 一切正常。

string msg = "This is my test message";

X509Certificate2 privateCert = new X509Certificate2("C:\\TEMP\\private.pfx", "12345");

byte[] signature = (privateCert.PrivateKey as RSACryptoServiceProvider).SignData(new UTF8Encoding().GetBytes(msg), new SHA256CryptoServiceProvider());
Run Code Online (Sandbox Code Playgroud)

我只能假设我的证书文件不是用 SHA256 创建的,而是用某种默认的 SHA1 算法创建的。

这些是我用来创建证书的步骤:

  1. openssl req -x509 -days 365 -newkey rsa:2048 -sha256 -keyout key.pem -out cert.pem
  2. openssl pkcs12 -export -in cert.pem -inkey key.pem -out private.pfx

我究竟做错了什么?

.net c# openssl rsa sha

5
推荐指数
1
解决办法
3709
查看次数

标签 统计

.net ×1

c# ×1

openssl ×1

rsa ×1

sha ×1