Имам работна роля в Azure, която искам да извикам на услугата за управление (напр. REST API) и да събирам информация относно свързани услуги. Въпреки това, когато се опитвам да заредя моя сертификат, той не успява да го намери. Ето стъпките, които следвах:
1. Създадох сертификат с помощта на MakeCert и го регистрирах като мой сертификат за управление през портала
makecert -r -pe -a sha1 -n "CN=MyCnName" -ss My -len 2048 -sp "Microsoft Enhanced RSA и AES криптографски доставчик" -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");
}
Няма изключение, просто не е намерен сертификат. Може ли някой да хвърли малко светлина какво трябва да направя?