Clickonce загружает файлы развертывания через HTTP, а не HTTPS - PullRequest
0 голосов
/ 07 июня 2010

Я работаю над проектом по развертыванию проекта с помощью clickonce. Веб-сайт, на котором размещены эти файлы, будет принимать только HTTPS-трафик, и если вы попытаетесь подключиться через HTTP, наш агент siteminder перенаправит вас в форму входа HTTPS. Мы не можем отключить агент Siteminder или включить HTTP по соображениям безопасности. В файле приложения у меня есть кодовая база, которая ссылается на абсолютный путь к манифесту, и это через HTTPS

  <dependency>
    <dependentAssembly dependencyType="install" codebase="https://psaportal.ilab.test.com/testprinting/Application_Files/testprint_1_0_0_1/testprint.exe.manifest" size="10147">
      <assemblyIdentity name="testprint.exe" version="1.0.0.1" publicKeyToken="9a078649ee05e0e7" language="neutral" processorArchitecture="msil" type="win32" />
      <hash>
        <dsig:Transforms>
          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
        </dsig:Transforms>
        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
        <dsig:DigestValue>2nch1T0SmlAycmePobtg9F1qF7c=</dsig:DigestValue>
      </hash>
    </dependentAssembly>
  </dependency>

При запуске wireshark и декодировании трафика SSL (я использую закрытый ключ сервера в wireshark для расшифровки трафика SSL). Я вижу запрос к файлу манифеста приложения через HTTPS (это хорошо). Но когда clickonce пытается загрузить testprint.exe.deploy и другие соответствующие файлы, это всегда происходит через HTTP, и siteminder подключается и перенаправляет запросы, которые завершают установку clickonce с ошибками.

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

Текущий раздел зависимостей из файла манифеста выглядит следующим образом:

  <dependency>
    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="testprint.exe" size="107008">
      <assemblyIdentity name="testprint" version="1.0.0.1" language="neutral" processorArchitecture="msil" />
      <hash>
        <dsig:Transforms>
          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
        </dsig:Transforms>
        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
        <dsig:DigestValue>dm2nJsu/5UyaEXSDmnISwfnE9MM=</dsig:DigestValue>
      </hash>
    </dependentAssembly>
  </dependency>

Я подтвердил, что веб-сайт, на котором файлы приложения, манифеста и развертывания находятся по одному и тому же URL-адресу, а сертификат SSL является действительным сертификатом.

Мы опробовали каждую комбинацию создания файлов приложений и манифестов, когда мы придумываем и ищем другие решения.

Приложение использует .NET 3.5, и мы попытались собрать файлы приложения и манифеста через VS2008, VS2010 и mage безуспешно.

Кто-нибудь знает, как заставить все файлы развертывания всегда загружаться через HTTPS?

Ответы [ 2 ]

0 голосов
/ 06 июня 2017

По вашему описанию это звучит как проблема с сертификатом или конфигурацией веб-сервера. Вы пробовали руководство в Проблемы с обслуживанием и настройкой клиента в ClickOnce Deployments?

0 голосов
/ 09 июня 2010

Это сообщение также было опубликовано в этой теме на форуме MSDN ClickOnce, и на него были получены некоторые ответы. Просто опубликовать это на тот случай, если кто-то еще захочет проверить другие ответы.

...