Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>There's no difference in the CertificateRequest message sent by a server when the certificate is merely requested, rather than required. The server makes the same request in both cases, and simply terminates the handshake when a client fails to provide a required certificate. Thus, if your browser appears to be ignoring "requests", it should appear to ignore "requirements" too.</p> <p>Check for the following:</p> <ul> <li>Is your browser configured to ignore all certificate requests, never sending one?</li> <li>Is your browser configured to use a given certificate without prompting the user? (In other words, how do you know that the browser isn't sending a certificate?)</li> <li>Is your server actually requesting a certificate?</li> </ul> <p>The way I test this last case is with the <a href="http://www.openssl.org/" rel="nofollow noreferrer">OpenSSL</a> (also available in <a href="http://www.cygwin.com/" rel="nofollow noreferrer">Cygwin</a>) tool: </p> <pre><code>openssl s_client -connect server.y.com:443 -msg </code></pre> <p>After the server sends its Certificate message, it will insert a CertificateRequest method which is absent if it is not requesting client authentication. The s_client output looks like this:</p> <pre><code>&lt;&lt;&lt; TLS 1.0 Handshake [length 0008], CertificateRequest 0d 00 00 04 01 01 00 00 </code></pre> <p>I'm not sure how it works if the server uses client authentication only on specific paths, because the initial SSL handshake is complete before the client transmits the HTTP request. It would be reasonable for the server to request a new handshake at this point, but I've never tested to see what servers support this.</p> <p>You can fake an HTTP request via s_client by hand, entering:</p> <pre><code>GET /your/path/here HTTP/1.1[Enter] Host: server.y.com:443[Enter] [Enter] </code></pre> <p>If you never see a CertificateRequest message at all, your server isn't set up correctly.</p> <p>Specifying security constraints based on directory structure is quite common and can actually simplify administration of security nicely. Don't feel bad about it if this offers a solution for you.</p> <p>403.7 is not an HTTP status code. Is that some Microsoft "embrace, extend, and extinguish" subterfuge? In any case, it doesn't sound like the right direction to pursue, since this is a transport layer problem, not an application layer problem.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload