Exemple #1
0
 def test_ssl(self):
     'Test serving over SSL'
     address = '127.0.0.1'
     with TemporaryDirectory('srv-test-ssl') as tdir:
         cert_file, key_file, ca_file = map(lambda x: os.path.join(tdir, x),
                                            'cka')
         create_server_cert(address,
                            ca_file,
                            cert_file,
                            key_file,
                            key_size=1024)
         ctx = ssl.create_default_context(cafile=ca_file)
         with TestServer(lambda data:
                         (data.path[0] + data.read().decode('utf-8')),
                         ssl_certfile=cert_file,
                         ssl_keyfile=key_file,
                         listen_on=address,
                         port=0) as server:
             conn = http_client.HTTPSConnection(address,
                                                server.address[1],
                                                context=ctx)
             conn.request('GET', '/test', 'body')
             r = conn.getresponse()
             self.ae(r.status, http_client.OK)
             self.ae(r.read(), b'testbody')
             cert = conn.sock.getpeercert()
             subject = dict(x[0] for x in cert['subject'])
             self.ae(subject['commonName'], address)
Exemple #2
0
 def conn_factory(hostport, **kw):
     kw['context'] = self.ssl_context
     return http_client.HTTPSConnection(hostport, **kw)