none
Как добавить несколько доменов к сайту в Ажуре? RRS feed

  • Вопрос

  • Извините, не получилось восстановить прошлый аккаунт, но это снова я про сайт Web App.

    Привязать домен удалось, но на будущее хотелось бы знать, как можно привязать несколько доменов. На сайте непонятно как это сделать? Спасибо

    16 июня 2016 г. 12:56

Ответы

  • У вебаппов есть специальное поле, которое можно устанавливать, в т.ч. программным путем. Когда-то написал сниппет на C#, который добавляет в нужный вам веб-сайт дополнительные доменные имена. Попробуйте -

    Что он делает - во-первых, вам нужен thumbprint из publish settings file - его можно загрузить на портале Azure. Для того, чтобы получить доступ.

    Потом он проходит по всем вебаппам и показываем о них данные - для того, чтобы вы затем могли выбрать (если много веб-сайтов, это может быть затруднительно без удобного списка).

    public const string base64EncodedCertificate = "";
            public const string subscriptionId = "";
    
            static SubscriptionCloudCredentials getCredentials()
            {
                return new CertificateCloudCredentials(subscriptionId, new X509Certificate2(Convert.FromBase64String(base64EncodedCertificate)));
            }
            static void Main(string[] args)
            {
                WebSiteManagementClient client = new WebSiteManagementClient(getCredentials());
    
                WebSpacesListResponse n = client.WebSpaces.List();
                n.Select(p =>
                {
                    Console.WriteLine("webspace {0}", p.Name);
                    WebSpacesListWebSitesResponse websitesInWebspace = client.WebSpaces.ListWebSites(p.Name,
                          new WebSiteListParameters()
                          {
                          });
                    websitesInWebspace.Select(o =>
                    {
                        Console.WriteLine(o.Name);
    
                        foreach (var d in o.HostNameSslStates)
                        {
                            Console.WriteLine(d.Name + "''''" + d.SslState);
                        }
                       
                        return o;
                    }).ToArray();
                    return p;
                }).ToArray();
    
                Console.ReadLine();
                var configuration = client.WebSites.Get("northeuropewebspace", "todeletewbp1", new WebSiteGetParameters());
    
               configuration.WebSite.HostNames.Add("ahriman.ru");
                configuration.WebSite.HostNameSslStates.Add(new WebSite.WebSiteHostNameSslState() { Name = "ahriman.ru", SslState = WebSiteSslState.SniEnabled, Thumbprint = "83DDA0A76FE70C8ADA87D5832CA964542DD923EA" });
                WebSiteUpdateParameters dn = new WebSiteUpdateParameters();
                var resp = client.WebSites.Update("northeuropewebspace", "todeletewbp1", new WebSiteUpdateParameters() {HostNames = configuration.WebSite.HostNames, HostNameSslStates = dn.HostNameSslStates });
                Console.WriteLine(resp.StatusCode);
                Console.ReadLine();
            }
    


    16 июня 2016 г. 13:28

Все ответы

  • У вебаппов есть специальное поле, которое можно устанавливать, в т.ч. программным путем. Когда-то написал сниппет на C#, который добавляет в нужный вам веб-сайт дополнительные доменные имена. Попробуйте -

    Что он делает - во-первых, вам нужен thumbprint из publish settings file - его можно загрузить на портале Azure. Для того, чтобы получить доступ.

    Потом он проходит по всем вебаппам и показываем о них данные - для того, чтобы вы затем могли выбрать (если много веб-сайтов, это может быть затруднительно без удобного списка).

    public const string base64EncodedCertificate = "";
            public const string subscriptionId = "";
    
            static SubscriptionCloudCredentials getCredentials()
            {
                return new CertificateCloudCredentials(subscriptionId, new X509Certificate2(Convert.FromBase64String(base64EncodedCertificate)));
            }
            static void Main(string[] args)
            {
                WebSiteManagementClient client = new WebSiteManagementClient(getCredentials());
    
                WebSpacesListResponse n = client.WebSpaces.List();
                n.Select(p =>
                {
                    Console.WriteLine("webspace {0}", p.Name);
                    WebSpacesListWebSitesResponse websitesInWebspace = client.WebSpaces.ListWebSites(p.Name,
                          new WebSiteListParameters()
                          {
                          });
                    websitesInWebspace.Select(o =>
                    {
                        Console.WriteLine(o.Name);
    
                        foreach (var d in o.HostNameSslStates)
                        {
                            Console.WriteLine(d.Name + "''''" + d.SslState);
                        }
                       
                        return o;
                    }).ToArray();
                    return p;
                }).ToArray();
    
                Console.ReadLine();
                var configuration = client.WebSites.Get("northeuropewebspace", "todeletewbp1", new WebSiteGetParameters());
    
               configuration.WebSite.HostNames.Add("ahriman.ru");
                configuration.WebSite.HostNameSslStates.Add(new WebSite.WebSiteHostNameSslState() { Name = "ahriman.ru", SslState = WebSiteSslState.SniEnabled, Thumbprint = "83DDA0A76FE70C8ADA87D5832CA964542DD923EA" });
                WebSiteUpdateParameters dn = new WebSiteUpdateParameters();
                var resp = client.WebSites.Update("northeuropewebspace", "todeletewbp1", new WebSiteUpdateParameters() {HostNames = configuration.WebSite.HostNames, HostNameSslStates = dn.HostNameSslStates });
                Console.WriteLine(resp.StatusCode);
                Console.ReadLine();
            }
    


    16 июня 2016 г. 13:28
  • Получилось добавить, но пока не могу разобраться с SSL. Напишу если что позже
    16 июня 2016 г. 14:41