我正在尝试设置托管在Windows Azure Web角色中的WCF服务。我已经为邮件安全配置了服务,因此在使用不安全的通道时,我想使用X509证书加密邮件。不幸的是,我无法让它在Azure上工作。在当地,我设法正确设置了所有内容。
这是WCF服务的web.config:
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false before deployment -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="false"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true"/>
<serviceCredentials>
<serviceCertificate findValue="CN=peterpan.cloudapp.net" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" />
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="Skillconomy.Cloud.CheckInService.UserValidator, Skillconomy.Cloud.CheckInService" />
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
我已在Web角色中配置证书:
我已将证书上传到Azure门户网站:
我得到例外:
使用以下搜索找不到X.509证书 criteria:StoreName'My',StoreLocation'LocalMachine',FindType 'FindBySubjectName',FindValue'CN = xyz.cloudapp.net'。描述:一个 在执行当前Web期间发生了未处理的异常 请求。请查看堆栈跟踪以获取有关的更多信息 错误以及它在代码中的起源。
异常详细信息:System.InvalidOperationException:找不到 使用以下搜索条件的X.509证书:StoreName'My', StoreLocation'LocalMachine',FindType'FindBySubjectName',FindValue CN = xyz.cloudapp.net'。
我在这里缺少什么?
答案 0 :(得分:1)
问题通过改变来解决:
<serviceCertificate findValue="CN=peterpan.cloudapp.net" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" />
到
<serviceCertificate findValue="CN=peterpan.cloudapp.net" />
不能完全解释错误,但至少它有效......
答案 1 :(得分:1)
如果您打算使用x509FindType =&#34; FindBySubjectName&#34;,则findValue应为&#34; peterpan.cloudapp.net&#34; - 没有CN =