У меня есть приложение, которое использует закрытый ключ, первоначально полученный в файле .pem. Приложение работает как контейнер docker в AWS ECS (Fargate). Содержимое закрытого ключа было перемещено в AWS хранилище параметров, чтобы избежать работы с несколькими файлами .pem.
Приведенный ниже код импортирует этот ключ и работает на моем локальном компьютере. Но CryptographicException
всегда выдается в ECS с сообщением «поврежденные данные ASN1».
string pkcs8KeyString = exchange.Pem;
pkcs8KeyString = pkcs8KeyString.Replace("-----BEGIN PRIVATE KEY-----", string.Empty);
pkcs8KeyString = pkcs8KeyString.Replace("-----END PRIVATE KEY-----", string.Empty);
RSA rsa = RSA.Create();
try
{
rsa.ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<char>.Empty, Convert.FromBase64String(pkcs8KeyString), out _);
}
catch (CryptographicException e)
{
//Log to ECS
Console.WriteLine("The key could not be imported!");
Console.WriteLine($"{e.GetType().FullName} {e.Message}");
throw;
}
В чем разница между моей локальной средой и ECS в этом отношении? Что я могу сделать, чтобы избежать исключения в ECS?