我正在尝试将 X509Certificate2 和 RSACryptoServiceProvider 与 PHP OpenSSL 命令一起使用来实现双向相互安全。
从 PHP 向 C# 发送消息似乎一切都很好,.NET 服务器上的 RSACryptoServiceProvider 可以使用它自己的私钥解密消息并使用 PHP 服务器的公钥验证签名。
但反过来说,.NET 到 PHP,使用“openssl_public_decrypt”来验证 .NET 服务器的签名会造成麻烦。它只是返回假。'openssl_private_decrypt' 可以很好地使用 PHP 服务器的私钥解密加密数据。
我使用 openssl(.key 和 .crt)为两台服务器创建了 RSA(2048)自签名证书,然后创建了一个 .pfx 以用作 .NET 代码中的私钥。
我想知道这里有什么问题。我在 .NET 和 PHP 服务器上都使用默认设置进行加密/解密。当您使用 .pfx 加密某些内容时,加密/解密机制是否不同?或者 openssl_public_decrypt 是否期望与 RSACryptoServiceProvider 给你的加密不同?
任何帮助都会很棒,因为我不确定问题出在哪里。