我在BasicHttpBinding上公开了带有两个终结点的单个WCF服务。但是,一个用于http,另一个用于安全(SSL)。我使用以下方法成功实现了这一目标。
在IIS中,我还在站点SSL中配置了默认的开发证书,然后单击“ Require SSL”,然后单击“ Ignore / Accept”。
我的问题:
我看到当我在浏览器中使用https调用时,看到“不安全”警告,您单击继续,它显示为红色,但带有https。当我单击“不安全”按钮时,我看到证书无效。我需要在浏览器中做任何事情,还是服务器行为中的以下证书配置应该归结为端点行为?
<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>
答案 0 :(得分:1)
将证书添加到本地计算机的“受信任的人”(客户端正在访问其服务的客户端)存储中。一旦将其安装在受信任的人商店中,请双击它以查看是否还有其他错误。
Intent part3A = new Intent(Part2.this, Part3.class);
btnNext.setOnClcikListener(){
//here call your intent from Part2
startActivity(part3A);
}
使用此元素可以指定X.509证书,该证书将用于向客户端验证服务
使用邮件安全模式
。如果您使用的证书将定期更新,则其指纹将更改。在这种情况下,请使用主题名称作为x509FindType,因为可以使用相同的主题名称重新颁发证书。