<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Feb 26, 2014 at 9:58 AM, David Birdsong <span dir="ltr"><<a href="mailto:david.birdsong@gmail.com" target="_blank">david.birdsong@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Having just gone through learning about this over the last few days, here's what I learned. Take it w/ a grain of salt.<div>

<br></div><div>There are 2 ways I'm aware of.</div><div><br></div><div>1. turn on strict client verify and limit the ca list that the server knows about. this will cause the server to have a limited view of what certs are valid in the world and cause it to reject any client who's cert doesn't chain back to your ca list. I think you set that here:</div>


<div><a href="http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_trusted_certificate" target="_blank">http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_trusted_certificate</a><br></div><div><br></div><div>

2. match subject name and subjectAlternatename to a whitelist. I don't know if nginx can do this part natively. Haproxy can:</div>
<div><a href="http://cbonte.github.io/haproxy-dconv/configuration-1.5.html#5.2-verifyhost" target="_blank">http://cbonte.github.io/haproxy-dconv/configuration-1.5.html#5.2-verifyhost</a></div></div></blockquote><div><br>

</div><div>i misunderstood verifyhost in haproxy, that's something else completely. it doesn't verify subjectname or subjectAlternatename on client supplied certs.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div dir="ltr"><div><br></div><div><br></div><div>...from skimming, the way you'd do #2 is to use <a href="http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_trusted_certificate" target="_blank">http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_trusted_certificate</a> to set a proxy header from: $ssl_client_cert and have your backend parse and accept/deny names found in that pem structure</div>


<div><br></div><div><br></div></div><div class=""><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Feb 26, 2014 at 9:37 AM, paddy3883 <span dir="ltr"><<a href="mailto:nginx-forum@nginx.us" target="_blank">nginx-forum@nginx.us</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">I'm currently working on POC for my company which is looking to use NGINX to<br>


validate API Requests using Client Side Certificates. Presently we have it<br>
setup so we are self signing/generating these certificates on the local<br>
machine and are able to use these successfully in our tests. We are also<br>
able to use the revocation list to disable generated certificates.<br>
<br>
Moving forward it is possible we will be using an external CA to generate<br>
these certificates and we are trying to determine if this is a way to<br>
'whitelist' certificates so only those generated ones which we have<br>
visibility of will be verified, rather than a 'blacklisting' approach to<br>
block those which are revoked? i.e. Given a client certificate generated by<br>
a external CA how can we established this in a trusted list of certs to<br>
verify?<br>
<br>
Apologies if this question is lacking technical details/knowledge, this is<br>
my first hands on experience with SSL.<br>
<br>
Posted at Nginx Forum: <a href="http://forum.nginx.org/read.php?2,247969,247969#msg-247969" target="_blank">http://forum.nginx.org/read.php?2,247969,247969#msg-247969</a><br>
<br>
_______________________________________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org" target="_blank">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div></div>