Я работаю над интеграцией платежного шлюза с файлом ключа сертификата (.pfx), предоставленным соответствующим органом, хотя я работаю над localhost , все работает идеально, как я ожидал. Но после публикации в windows сервер 2019 у нас возникла проблема в процессе генерации токена.
Это код генерации токена, который мы используем
RSACng key = new System.Security.Cryptography.RSACng();
X509Certificate2 publicCert = new X509Certificate2(publicKeyLocation, "123", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet);
X509Certificate2 privateCert = null;
X509Store store = new X509Store(StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
foreach (X509Certificate2 cert in store.Certificates)
{
var val1 = publicCert.GetCertHashString();
if (cert.GetCertHashString() == publicCert.GetCertHashString())
privateCert = cert;
}
key = privateCert.GetRSAPrivateKey() as RSACng;
byte[] signature = key.SignHash(hashValue, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
key = (System.Security.Cryptography.RSACng)publicCert.GetRSAPublicKey();
if (!key.VerifyHash(hashValue, signature, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1))
throw new CryptographicException();
return signature;
Это ответ, который мы получаем при вызове API из localhost
Это ответ API после публикации sh на windows сервере 2019