<div dir="ltr"><div>Apologies in advance for the rather basic questions I have here, but I am a bit stuck.</div><div><br></div><div>I am looking at ssl with twisted 14.0.0</div><div><br></div><div>I have loaded all the dependencies crypto, pycrypto, service_identity, six, idna, cffi, pyasn1, pyopenssl 0.14, openssl 1.0.1g</div><div><br></div><div>I am running this on windows7, windows 2008r2</div><div><br></div><div>I have read through Using TLS in Twisted several times but still find myself not sure as to what I should do.</div><div><br></div><div>I need both server and client set up.</div><div><br></div><div>I have a server end where I have a GoDaddy certificate and certificate chain. So on the server end I need to pass to ssl.CertificateOptions the privatekey and certificate.</div><div><br></div><div><div>I also need to pass in the location of the GoDaddy bundle.</div></div><div><br></div><div>I have a set up using Cherrypy and this now works fine. But I need it working with Twisted.</div><div><br></div><div><br></div><div>Now this is where I am not so clear. Should I pass the bundle as TrustRoot or as extraCertChain.</div><div><br></div><div>The docs seem to say that on Windows there is no cert store to be used as trustRoot.</div><div><br></div><div>If anyone can throw some light on this I would be very grateful.</div><div><br></div><div>For the client using Twisted.web.Agent, I need to verify a different ssl certificate on another server system I connect to.</div><div><br></div><div>At the moment, I can connect without verifying the certificate, but these days that is no longer acceptable.</div><div><br></div><div>So I try the example in the docs for checking a certificate but it fails on all examples, including <a href="http://www.twistedmatrix.com">www.twistedmatrix.com</a>. I assume this is because I do not have a default set of certificates in a store to check against.</div><div><br></div><div>If I use the requests package I can get it to verify or not the server certificate,  but when I turn to twisted it is not clear what I should be doing.</div><div><br></div><div>The example specifies an 'authority' public.pem for the client to check against.</div><div><br></div><div>So should I be looking for the way requests works where I do not specify an authority  and it works by finding a bunch of certs somewhere.</div><div><br></div><div>Or do I pass in a cert that is specific to the server I am connecting to and it will only check against that. This seems more specific and more secure.</div><div><br></div><div><br></div><div>A final point. I need to be able to confirm which version of openssl I am connecting with. Is there a way to pin down which version pyopenssl is finding.</div><div><br></div><div><br></div><div>Thanks for any information and pointers.</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>-- <br><div class="gmail_signature"><b>John Aherne</b><div><b><br></b><div><b><img src="http://www.rocs.co.uk/Images/rocs_logo_sig.gif"><br></b></div><div><b><br></b></div><div><div><b><a href="http://www.rocs.co.uk" target="_blank">www.rocs.co.uk</a><br></b></div></div></div><div>020 7223 7567</div></div>
</div>