views:

2604

answers:

2

I get this message:

Cannot find the X.509 certificate using the following search criteria: StoreName 'My', StoreLocation 'LocalMachine', FindType 'FindBySubjectDistinguishedName', FindValue 'CN=HighBall'.

My web.config setup looks like this;

Authentication is set like...

    <authentication mode="Windows" />

The bindings are set for wsHttpBinging

  <wsHttpBinding>
    <binding name="BindingConfiguration">
      <security>
        <message clientCredentialType="UserName" />
      </security>
    </binding>
  </wsHttpBinding>

and my Service behavior is set as such...

    <behavior name="HighBall.Services.ServiceVerificationBehavior">
      <serviceAuthorization principalPermissionMode="UseAspNetRoles"
            roleProviderName="HighBallRoleProvider" />
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
      <serviceCredentials>
        <serviceCertificate findValue="CN=HighBall" />
        <userNameAuthentication userNamePasswordValidationMode="MembershipProvider"
            membershipProviderName="HighBallMembershipProvider" />
      </serviceCredentials>
    </behavior>

I've tried to figure out a way to verify what, how, and where to certificate is stored but am not sure how to do this. If anyone has any ideas on this error message I'd greatly appreciate the assist.

Thx, Adron

+1  A: 

Check the other post about the tool that you asked about. Verify your "my" storage and check if the CN="HighBall". I guess your CN is not just "HighBall", probably it has a top level domain. I think it's easier to look for the certificate serial number, i think it's faster than for it's canonical name and error prone.

Regards,

Victor

VP
+1  A: 

Remember that ASP.NET runs as a different user. It may need to be assigned access to the certificate.

Richard Nienaber
Can you provide any additional information damagednoob?
Richard Ev
From my experience, only the user that installed the certificates into the store has rights to access them. ASP.NET then can't see the certificate when it tries to access it. You need to use a tool like winhttpcertcfg to give the ASP.NET user access.
Richard Nienaber