glyph / txsni

Simple support for running a TLS server with Twisted.
MIT License
25 stars 10 forks source link

TypeError with Python 3.x when raising exception for unknown server names #20

Open geofft opened 7 years ago

geofft commented 7 years ago

I touched a .pem file for one hostname and used twist web --port le:/home/geofft/twisted/certs:tcp:443 to run a server. I then accessed the server over a different hostname, and got a few of these tracebacks:

2017-05-24T22:09:48-0400 [stderr#error] From cffi callback <function SNIMap.selectContext at 0x7f90c9857ea0>:
2017-05-24T22:09:48-0400 [stderr#error] Traceback (most recent call last):
2017-05-24T22:09:48-0400 [stderr#error]   File "/home/geofft/twisted/lib/python3.4/site-packages/txacme/challenges/_tls.py", line 28, in __getitem__ 
2017-05-24T22:09:48-0400 [stderr#error]     return self.overlay[key]
2017-05-24T22:09:48-0400 [stderr#error] KeyError: b'dev.ldpreload.com'
2017-05-24T22:09:48-0400 [stderr#error] During handling of the above exception, another exception occurred:
2017-05-24T22:09:48-0400 [stderr#error] Traceback (most recent call last):
2017-05-24T22:09:48-0400 [stderr#error]   File "/home/geofft/twisted/lib/python3.4/site-packages/OpenSSL/SSL.py", line 1132, in wrapper
2017-05-24T22:09:48-0400 [stderr#error]     callback(Connection._reverse_mapping[ssl])
2017-05-24T22:09:48-0400 [stderr#error]   File "/home/geofft/twisted/lib/python3.4/site-packages/txsni/snimap.py", line 133, in selectContext
2017-05-24T22:09:48-0400 [stderr#error]     newContext = self.mapping[connection.get_servername()].getContext()
2017-05-24T22:09:48-0400 [stderr#error]   File "/home/geofft/twisted/lib/python3.4/site-packages/txacme/challenges/_tls.py", line 30, in __getitem__
2017-05-24T22:09:48-0400 [stderr#error]     return self.underlay[key]
2017-05-24T22:09:48-0400 [stderr#error]   File "/home/geofft/twisted/lib/python3.4/site-packages/txsni/snimap.py", line 181, in __getitem__
2017-05-24T22:09:48-0400 [stderr#error]     raise KeyError("no pem file for " + hostname)
2017-05-24T22:09:48-0400 [stderr#error] TypeError: Can't convert 'bytes' object to str implicitly
glyph commented 7 years ago

Thanks for the bug report. This should definitely be fixed.