Ошибка при получении X509Certificate2.PrivateKey в Azure AppService - PullRequest
0 голосов
/ 05 октября 2018

Несколько часов назад я думал, что это ошибка RSACryptoServiceProvider .

Но я присоединяю отладчик к веб-сайту Azure AppService и обнаружил, что у PrivateKey есть проблема:

System.Security.Cryptography.CryptographicException: Invalid provider type specified.

И если запуститьтот же сертификат, но в localhost закрытый ключ работает хорошо: enter image description here

Сведения об исключении, когда я пытался получить свойство 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ограничение, конфигурация или что-то в этом роде.

...