tushi0407 Ответов: 0

Как использовать сертификат в AZURE ASP.NET веб-сайты


Я двигаюсь в одном приложении ASP.NET в гостиничном комплексе Лазурный.В приложении мы используем один X509Certificate2 при вызове некоторых веб-сервисов.Я использовал метод cert.import для импорта сертификата, а затем добавил объект сертификата в свойство сертификата клиента службы.Он прекрасно работал, когда мы размещали наше приложение на серверах IIS.
Вот как мы это делаем :

abcservice service = new abcservice ();
`string CertificatePath = ConfigurationManager.AppSettings["CertificatePath"].ToString();
string certPwd = ConfigurationManager.AppSettings["CertificatePwd"].ToString();`

    cert.Import(CertificatePath, certPwd , X509KeyStorageFlags.DefaultKeySet);
    service.ClientCertificates.Add(cert);


Но когда мы переезжаем в azure ,он перестает работать и начинает показывать мне, что я не могу найти указанный файл в cert.import .

В интернете.конфигурации ,мы установили следующие свойства :

<clientCertificate findValue="abc-123.pqr.com" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" />
            <!--Need to provide Server certificate Details-->
            <serviceCertificate>
              <defaultCertificate findValue="xyz Gateway" storeLocation="LocalMachine" storeName="TrustedPeople" x509FindType="FindBySubjectName" />
              <authentication certificateValidationMode="ChainTrust" revocationMode="Online" />


Я все устроил abc-123.pqr.com как DNS-имя для моего веб-сайта, и я могу получить доступ к веб-сайту с помощью этого URL-адреса и загрузить сертификат на портале azure по этому URL-адресу.


Что я уже пробовал:

Я узнал, что MyStore не работает в Azure.Поэтому я ищу некоторые альтернативы для этого.Я нашел одно решение, как я могу сделать это без использования импорта.

abcservice service = new abcservice ();

    string CertificatePath =ConfigurationManager.AppSettings["CertificatePath"].ToString();

   

`string certPwd = ConfigurationManager.AppSettings["CertificatePwd"].ToString();`

    X509Certificate2 cert = new X509Certificate2(CertificatePath , certPwd , X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
    service.ClientCertificates.Add(cert);

Теперь он начинает добавлять сертификат в объект службы но когда я вызываю службу он начинает давать мне следующую ошибку :

Не удается найти сертификат X. 509, используя следующие критерии поиска: StoreName 'My', StoreLocation 'LocalMachine', FindType 'FindBySubjectName', FindValue 'abc-123.pqr.com".
Пожалуйста, подскажите, как я могу его использовать.Заранее спасибо.

ZurdoDev

Вы должны загрузить его как файл, а затем поместить файл на свой сайт, а не из хранилища сертификатов. Вероятно, это сработает, если вы используете виртуальную машину Azure и настроите на ней свой сайт, но веб-сайт Azure не будет иметь доступа к хранилищу сертификатов.

tushi0407

да..вот что, на сайте Azure нет хранилища сертификатов.Я добавил сертификат в приложение, а затем не знаю, как я могу сохранить его, чтобы веб-служба, использующая его, могла получить доступ к этому объекту.

0 Ответов