Несколько часов назад я думал, что это ошибка RSACryptoServiceProvider .
Но я присоединяю отладчик к веб-сайту Azure AppService и обнаружил, что у PrivateKey есть проблема:
![System.Security.Cryptography.CryptographicException: Invalid provider type specified.](https://i.stack.imgur.com/03fIL.png)
И если запуститьтот же сертификат, но в localhost закрытый ключ работает хорошо: ![enter image description here](https://i.stack.imgur.com/u3FyD.png)
Сведения об исключении, когда я пытался получить свойство certificate.PrivateKey: System.Security.Cryptography.CryptographicException: Invalid provider type specified.
at System.Security.Cryptography.Utils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer)
at System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle)
at System.Security.Cryptography.RSACryptoServiceProvider.GetKeyPair()
at System.Security.Cryptography.RSACryptoServiceProvider..ctor(Int32 dwKeySize, CspParameters parameters, Boolean useDefaultKeySize)
at System.Security.Cryptography.X509Certificates.X509Certificate2.get_PrivateKey()
Икогда я пытался использовать Certificate.GetRSAPrivateKey ():
System.Security.Cryptography.CryptographicException: Invalid provider type specified.
at System.Security.Cryptography.Utils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer)
at System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle)
at System.Security.Cryptography.RSACryptoServiceProvider.GetKeyPair()
at System.Security.Cryptography.RSACryptoServiceProvider..ctor(Int32 dwKeySize, CspParameters parameters, Boolean useDefaultKeySize)
at System.Security.Cryptography.X509Certificates.X509Certificate2.get_PrivateKey()
at System.Security.Cryptography.X509Certificates.RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2 certificate)
Этот способ инициализации сертификата следующий:
public X509Certificate2 GetCertificate(byte[] pBytes,string pPassword)
{
X509Certificate2 vCertificate = null;
try
{
vCertificate = new X509Certificate2(pBytes,pPassword);
}
catch(Exception ex)
{
throw ex
}
return vCertificate
}
.Net Version Framework v4.7
Так нужно ли мне что-то настраивать в конфигурации Azure?Любая подсказка?
Не думаю, что это дубликат: "Указан неверный тип поставщика" CryptographicException при попытке загрузить закрытый ключ сертификата
Похоже, это Azureограничение, конфигурация или что-то в этом роде.