Не мог отредактировать файлы на Windows Server 2008, который был загружен программно

Счет необходимо использовать частный IP для достижения экземпляров внутренне так, чтобы Вы не становились обвиненными за передачу данных между ними. Чтобы сделать это, не имея необходимость реконфигурировать Ваше программное обеспечение, можно установить ссылки CNAME в DNS для перевода статического имени под одним из доменов к эластичному IP-адресу. Путем выполнения этого поиска эластичного IP CNAME амазонка система DNS поймает поиск и возвратит ВНУТРЕННИЙ адрес вместо внешнего, который все во внешнем мире получат. Viola, лучшая из обоих миров! Статические названия DNS в программном обеспечении и внешние люди получают Ваш эластичный IP, и Ваши внутренние экземпляры получают внутренние маршруты IP без зарядов данных!

Кроме того, Ваш эластичный IP routable из EC2, но необходимо открыть брандмауэр, особенный для него, я думаю.

Править: Для более ссылочного и практических руководств по этой проблеме посмотрите writups на Alestic и Apparently Так. Существует также вопрос, ссылающийся на проблему здесь о ServerFault.

-1
задан 13 September 2012 в 10:24
3 ответа

Включен ли UAC в системе? В этом случае, даже если вы входите в систему с учетной записью администратора, эта учетная запись будет непривилегированной до тех пор, пока вы явно не запросите повышенные привилегии (через «Запуск от имени администратора»). Можете ли вы запустить командную строку «от имени администратора» и изменить разрешения с помощью icacls ?

icacls C:\YOUR\EXTRACTED\file /grant "Authenticated Users:(CI)(OI)F
0
ответ дан 5 December 2019 в 20:04

Пытались ли вы получить права собственности на эти файлы?

В какой учетной записи пользователя запускается сценарий, который загружает эти файлы? Обычно владельцем файлов является создатель.

0
ответ дан 5 December 2019 в 20:04

Хорошо, мы сделали то же самое, что и вы. Мы работали наоборот. Сначала мы защитили IIS с помощью сертификата клиента и сервера. Мы сделали это в IIS Express (все еще в разработке, пока я публикую это). Мы разрешили в IIS express applicationhost.config перезаписывать определенные части файла web.config. То есть:

Конфигурация на стороне сервера:

<sytem.serviceModel>
<bindings>
      <wsHttpBinding>
        <binding name="ClientCert">
          <security mode="Transport">
            <transport clientCredentialType="Certificate" />
          </security>
        </binding>
      </wsHttpBinding>
</bindings>
<behaviors>
<!--We have a custom service behavior for claim based security -->
        <behavior name="wsHttpCertificateBehavior">
          <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />
          <serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />
          <serviceAuthorization serviceAuthorizationManagerType="MyNamespace.AdamAuthorizationManager, MyAssembly">
            <authorizationPolicies>
              <add policyType="MyNamespace.AdamAuthorizationPolicy, MyAssembly" />
            </authorizationPolicies>
          </serviceAuthorization>
          <serviceCredentials>
            <serviceCertificate findValue="YourServerCertificateNameWithoutCN=" x509FindType="FindBySubjectName" storeLocation="LocalMachine" storeName="My" />
            <clientCertificate>
              <authentication revocationMode="NoCheck" mapClientCertificateToWindowsAccount="true" />
            </clientCertificate>
          </serviceCredentials>
        </behavior>
</behaviors>
<services>
      <service name="MyNamespace.OrderService" behaviorConfiguration="wsHttpCertificateBehavior">
        <endpoint address="https://iisurl/OrderService.svc/ClientCert" contract="wsHttpCertificateBehavior.IOrderService" binding="wsHttpBinding" bindingConfiguration="ClientCert">
        </endpoint>
      </service>
</services>
</sytem.serviceModel>
<system.webServer>
<security>
      <authentication>
        <windowsAuthentication enabled="true" />
        <anonymousAuthentication enabled="true" />
        <iisClientCertificateMappingAuthentication defaultLogonDomain="YourDomain" enabled="true" oneToOneCertificateMappingsEnabled="true">
          <oneToOneMappings>
            <add enabled="true" certificate="Base64HashOfTheCertificate" userName="YourUserName" password="YourPassword" />
          </oneToOneMappings>
        </iisClientCertificateMappingAuthentication>
      </authentication>
      <authorization>
        <add users="*" accessType="Allow" />
      </authorization>
      <!--Require SSL *AND* require a client certificate -->
      <access sslFlags="Ssl, SslNegotiateCert, SslRequireCert" />
    </security>
</system.WebServer>

На клиенте:

<system.serviceModel>
      <wsHttpBinding>
        <binding name="ClientCertificate">
          <security mode="Transport">
            <transport clientCredentialType="Certificate"/>
          </security>
        </binding>
      </wsHttpBinding>
    <behaviors>
      <endpointBehaviors>
        <behavior name="wsHttpCertificateBehavior">
          <clientCredentials>

            <clientCertificate findValue="YourClientCertificateNameWithoutCN=" storeLocation="CurrentUser" storeName="My" x509FindType="FindBySubjectName"/>
            <serviceCertificate>
              <authentication revocationMode="NoCheck"/>
            </serviceCertificate>
          </clientCredentials>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <client>

      <endpoint name="ClientCertificate" address="https://iisurl/OrderService.svc/ClientCert" contract="MyNamespace.IOrderService" binding="wsHttpBinding" bindingConfiguration="ClientCertificate" behaviorConfiguration="wsHttpCertificateBehavior">
      </endpoint>
    </client>
</system.serviceModel>

Нам очень помогло включение трассировки, входа в службу, настраиваемой политики авторизации и журналов трассировки IIS.

У нас есть iisurl , сопоставленный с 127.0.0.1. 0.1 в нашем хост-файле, поэтому у нас есть доверенные сертификаты. Для iisClientCertificationMapping проверьте это out.

Не знаю, правильна ли ваша настройка ssl. Для этого у нас есть сценарий PowerShell. Некоторые его части:

Генерация корневого сертификата (PowerShell)

Invoke-Command -ScriptBlock{ . "C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\makecert.exe" -n "CN=YourRootCA" -r -sv YourRootCA.pvk YourRootCA.cer}


    $certFile = get-childitem $exPath | where {$_.FullName -match "GlobalVisionServicesRootCA.cer"} 
    if ($certFile -ne $NULL) { 
        echo "Discovered the YourRootCA.cer in the same folder as this script, installing it in the LocalMachine\Root certificate store.." 
        $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($certFile.FullName)
        $rootStore = new-object system.security.cryptography.x509certificates.x509Store 'Root','LocalMachine'
        $rootStore.Open('ReadWrite')
        $rootStore.Add($cert) 
        $rootStore.Close() 
    }

Генерация сертификата сервера (командная строка):

makecert.exe  -sk YourDevSrvCert -iv YourRootCA.pvk -n "CN=iisurl" -ic YourRootCA.cer -sr localmachine -ss my -sky exchange -pe yourservercertificate.cer

Генерация клиента сервера (командная строка):

makecert.exe  -sk ClientDevSrvCert -iv YourRootCA.pvk -n "CN=iisurl" -ic GlobalVisionServicesRootCA.cer -sr localmachine -ss my -sky exchange -pe iisurl.cer

Привязка сертификатов к IIS (командная строка , Для XP):

httpcfg.exe delete ssl -i "0.0.0.0:443"
httpcfg.exe" delete urlacl url="https://iisurl:443/"

httpcfg.exe set urlacl url="https://iisurl:443/" user=Everyone
httpcfg.exe" set ssl -i "0.0.0.0:443" -h ThumpPrint

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

Надеюсь, это вам поможет. С этой конфигурацией, если вы переходите по https к URL-адресу iisurl / OrderService, он запрашивает у вас сертификат клиента. (В IE)

Вы также можете посмотреть этот журнал: C: \ WINDOWS \ system32 \ Logfiles \ HTTPERR

убедитесь, что установлен флажок Заменить владельца подконтейнеров и объектов .
  • Нажмите Применить и закройте все вкладки свойств.
  • Теперь вы можете изменить разрешения на объекте, чтобы удалить его.
  • ОБНОВЛЕНИЕ:

    В ответ на ваш комментарий о том, что он не работает через графический интерфейс:

    1. Файл или папка заблокированы? Если вы получаете эту ошибку, вы не можете изменить файл, потому что какой-то процесс в настоящее время его использует, не позволяя ничему изменить файл. Вы можете найти процесс и убить его (например, с помощью диспетчера задач) или удалить дескриптор блокировки, для чего я предпочитаю Unlocker ).
    2. Если проблема не в заблокированном файле, вы вероятно, следует использовать Windows CLI для изменения разрешений. Запустите cmd.exe с повышенными правами ( Щелкните правой кнопкой мыши -> Запуск от имени администратора ). Лучшими утилитами Windows CLI для этой задачи являются XCACLS, для которого вы можете найти хорошее руководство по использованию здесь и CACLS, для которых вы можете найти хорошее применение здесь .
    ]
    1
    ответ дан 5 December 2019 в 20:04

    Теги

    Похожие вопросы