У меня есть рабочая роль Azure, с которой я хочу вызывать службу управления (например, REST API) и собирать информацию о связанных службах. Однако, когда я пытаюсь загрузить свой сертификат, он не может его найти. Вот шаги, которые я выполнил:
1. Я создал сертификат с помощью MakeCert и зарегистрировал его в качестве сертификата управления через портал.
makecert -r -pe -a sha1 -n "CN=MyCnName" -ss My -len 2048 -sp "Microsoft Enhanced RSA and AES Cryptographic Provider" -sy 24 MyCert.cer
2. Установил сертификат на свой локальный компьютер, и все работает нормально. При локальном запуске рабочей роли я могу без проблем вызвать службу управления.
3. Экспортировал сертификат с моей машины и зарегистрировал экспортированный сертификат в целевой размещенной службе через портал.
4. Развернул роль. Когда роль запускается, ей не удается найти сертификат.
Вот выдержка из кода, который я использую для поиска сертификата.
// Open the certificate store for the current user.
var certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser); // I also tried localmachine
certStore.Open(OpenFlags.ReadOnly);
// Find the certificate with the specified subject.
X509Certificate2Collection certCollection = certStore.Certificates.Find(
X509FindType.FindBySubjectName,
_myConfiguration.SubjectName,
false);
if (certCollection == null || certCollection.Count < 1)
{
// Find the certificate with the specified thumbprint.
certCollection = certStore.Certificates.Find(
X509FindType.FindByThumbprint,
_myConfiguration.ThumbPrint,
false);
}
// Close the certificate store.
certStore.Close();
// Check to see if a matching certificate was found.
if (certCollection.Count == 0)
{
_logger.Warn("No certificate found");
}
Исключения нет, просто сертификат не найден. Может ли кто-нибудь пролить свет на то, что мне нужно сделать?