Служба WCF Exposing с http и https с использованием сертификата BasicHttpBinding по-прежнему говорит NotSecure в браузере - PullRequest
0 голосов
/ 02 января 2019

Я предоставляю одну службу WCF с двумя конечными точками на BasicHttpBinding. Тем не менее, один для http и один для безопасного (SSL). Я добился успеха в достижении этого, используя ниже.

В IIS я также настроил сертификат разработки по умолчанию на сайте SSL, щелкнул «Требовать SSL» и нажал «Игнорировать / Принять», что нормально.

Мой выпуск:

Я вижу, что когда я использую вызов https в браузере, я вижу предупреждение "Незащищенный", и вы нажимаете, чтобы продолжить, и он красный, но с https. Когда я нажимаю кнопку «Незащищенный», я вижу сертификат недействительным. Что-то, что мне нужно сделать в браузере, или в приведенном ниже описании сертификата в поведении сервера должно быть указано поведение конечной точки?

enter image description here

 <services>
      <service behaviorConfiguration="myServiceBehavior" name="MyService">

         <endpoint address="" binding="basicHttpBinding" bindingConfiguration="" contract="IInvoiceService"/>
         <endpoint address="" binding="basicHttpBinding" bindingConfiguration="myBinding" contract="IInvoiceService"/>
      </service>
  </services>
    <bindings>
      <basicHttpBinding>
        <binding name="myBinding" >          
          <security mode="Transport">
           <transport clientCredentialType="Certificate"/>
          </security>
        </binding>        
      </basicHttpBinding>
</bindings>


<behaviors>
    <endpointBehaviors>
    <behavior name="graph">
        </behavior>
    </endpointBehaviors>
      <serviceBehaviors>
      <behavior name="myServiceBehavior">
       <serviceCredentials>
      <serviceCertificate findValue="localhost" storeLocation="LocalMachine"
        storeName="My" x509FindType="FindBySubjectName" />
      <userNameAuthentication userNamePasswordValidationMode="Windows" />
    </serviceCredentials>
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>

1 Ответ

0 голосов
/ 02 января 2019

Добавьте сертификат в хранилище доверенных лиц (в котором когда-либо клиент обращается к службе) для локального компьютера.Как только он установлен в доверенном хранилище людей, дважды щелкните его, чтобы увидеть, есть ли какие-либо другие ошибки.

<serviceCertificate Используйте этот элемент, чтобы указать сертификат X.509, который будет использоваться для аутентификации службы вклиенты

, использующие режим безопасности сообщений

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

...