Как использовать сертификат в 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 нет хранилища сертификатов.Я добавил сертификат в приложение, а затем не знаю, как я могу сохранить его, чтобы веб-служба, использующая его, могла получить доступ к этому объекту.