Использование powershell для подключения к сайтам HTTPS

Мне предоставили новую коробку Server 2012 для установки.

Я пытаюсь использовать powershell для установки шоколадного

iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

и получаю ошибку

Exception calling "DownloadString" with "1" argument(s): "The underlying connection was closed: An unexpected error occurred on a receive." At line:1 char:1 + iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/in ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : WebException

Я могу посетить этот URL в браузере.

Сначала я подумал, что это как-то связано с Шоколадкой, но потом понял, что

(New-Object System.Net.WebClient).DownloadString('http://google.com'))

можно загрузить html-контент

но

((New-Object System.Net.WebClient).DownloadString('https://google.com'))

вылетает с той же ошибкой

The underlying connection was closed: An unexpected error occurred on a receive.

Коробка:

  • Windows Server 2012 сборка 9600
  • не использует прокси
  • брандмауэр выключен

Я чувствую, что делаю что-то глупое, но не могу понять, что...

--- Обновлять ---

На основе этот ответ

Я выполнил следующие шаги:

``` 1.В Панели управления щелкните Администрирование, а затем дважды щелкните Локальная политика безопасности.

2. В разделе «Локальные параметры безопасности» разверните «Локальные политики» и нажмите «Параметры безопасности».

3. В разделе «Политика» на правой панели дважды щелкните «Системная криптография: использовать алгоритмы, совместимые с FIPS, для шифрования, хеширования и подписи», а затем нажмите «Включено».

  1. Запустил gpupdate /force ```

После этого шоколадный скрипт установки может быть загружен, но затем происходит сбой с:

STDOUT: FIPS Mode detected - run 'choco feature enable -n useFipsCompliantChecksums' to use Chocolatey. When FIPS Mode is enabled, Chocolatey requires useFipsCompliantChecksums feature also be enabled. STDERR: ---- End output of C:\ProgramData\chocolatey/bin/choco.exe list -l -r ---- Ran C:\ProgramData\chocolatey/bin/choco.exe list -l -r returned 1

Все еще кажется, что изменение GPO не должно быть необходимым


person Paul D'Ambra    schedule 09.11.2016    source источник
comment
Перед загрузкой контента попробуйте выполнить следующее: [System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}   -  person Martin Brandl    schedule 09.11.2016
comment
это можно запустить один за другим в командной строке? если так, то это не имело никакого эффекта. но также отключает ли это проверку сертификата навсегда? Это кажется немного опасным   -  person Paul D'Ambra    schedule 09.11.2016
comment
Да, это отключает проверку сертификата. Это полезно, если вы, например, работаете с самозаверяющими сертификатами и не хотите устанавливать его на всех своих клиентах, например. грамм. цель теста. Однако это, вероятно, не ваша проблема   -  person Martin Brandl    schedule 09.11.2016


Ответы (2)


Оказывается, это произошло из-за того, что TLS 1.0 был отключен в наших образах серверов, чтобы соответствовать PCI DSS 3.1.

Откат этого изменения в образ решил проблему с powershell.

В краткосрочной перспективе мы можем запустить

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 перед использованием System.Net.WebClient, но я хотел бы найти способ применить это и на уровне машины...


Я зарегистрировал это с помощью Chocolatey, и они решили проблему \o/

person Paul D'Ambra    schedule 09.11.2016

попробуй это :

$WBC = New-Object System.Net.WebClient

$WBC.DownloadString("https://google.com") 
person saftargholi    schedule 09.11.2016
comment
это просто одна и та же команда, разделенная на две строки. так тоже не работает - person Paul D'Ambra; 09.11.2016
comment
Хотя этот фрагмент кода может решить проблему, включение объяснения действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, а не только того, кто задает сейчас! Пожалуйста, отредактируйте свой ответ, чтобы добавить объяснение и указать, какие ограничения и предположения применяются. - person Toby Speight; 11.11.2016