Hi,

I have set up calendarserver on my Raspberry Pi (Raspbian~Debian) for personal usage. I wanted to handle all communications on a secure connection therefore, I do want to use SSL/TLS only. After I set up everything, I could browse the root directory on non-tls channel. Then I wanted to create a self-signed certificate to secure the connection. I had a pair of .pem and .key files, which I referenced in the configuration. I made sure, they are accessible. Then, I tried to "browse" the root directory again, but webpage never loaded (it was is being loaded for a very long time). Then I checked the error.log file and here what I have found:

2016-01-24 23:01:50+0100 [-] [caldav-1]  [-] Unhandled Error
2016-01-24 23:01:50+0100 [-] [caldav-1]         Traceback (most recent call last):
2016-01-24 23:01:50+0100 [-] [caldav-1]           File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 73, in callWithContext
2016-01-24 23:01:50+0100 [-] [caldav-1]             return context.call({ILogContext: newCtx}, func, *args, **kw)
2016-01-24 23:01:50+0100 [-] [caldav-1]           File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext
2016-01-24 23:01:50+0100 [-] [caldav-1]             return self.currentContext().callWithContext(ctx, func, *args, **kw)
2016-01-24 23:01:50+0100 [-] [caldav-1]           File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext
2016-01-24 23:01:50+0100 [-] [caldav-1]             return func(*args,**kw)
2016-01-24 23:01:50+0100 [-] [caldav-1]           File "/usr/lib/python2.7/dist-packages/twisted/internet/selectreactor.py", line 149, in _doReadOrWrite
2016-01-24 23:01:50+0100 [-] [caldav-1]             why = getattr(selectable, method)()
2016-01-24 23:01:50+0100 [-] [caldav-1]         --- <exception caught here> ---
2016-01-24 23:01:50+0100 [-] [caldav-1]           File "/usr/lib/python2.7/dist-packages/twext/internet/sendfdport.py", line 286, in doRead
2016-01-24 23:01:50+0100 [-] [caldav-1]             transport = self.transportFactory(skt, description, protocol)
2016-01-24 23:01:50+0100 [-] [caldav-1]           File "/usr/lib/python2.7/dist-packages/twext/web2/metafd.py", line 104, in createTransport
2016-01-24 23:01:50+0100 [-] [caldav-1]             transport.startTLS(self.contextFactory)
2016-01-24 23:01:50+0100 [-] [caldav-1]           File "/usr/lib/python2.7/dist-packages/twisted/internet/_newtls.py", line 179, in startTLS
2016-01-24 23:01:50+0100 [-] [caldav-1]             startTLS(self, ctx, normal, FileDescriptor)
2016-01-24 23:01:50+0100 [-] [caldav-1]           File "/usr/lib/python2.7/dist-packages/twisted/internet/_newtls.py", line 139, in startTLS

2016-01-24 23:01:50+0100 [-] [caldav-1]             tlsFactory = TLSMemoryBIOFactory(contextFactory, client, None)
2016-01-24 23:01:50+0100 [-] [caldav-1]           File "/usr/lib/python2.7/dist-packages/twisted/protocols/tls.py", line 769, in __init__
2016-01-24 23:01:50+0100 [-] [caldav-1]             contextFactory = _ContextFactoryToConnectionFactory(contextFactory)
2016-01-24 23:01:50+0100 [-] [caldav-1]           File "/usr/lib/python2.7/dist-packages/twisted/protocols/tls.py", line 648, in __init__
2016-01-24 23:01:50+0100 [-] [caldav-1]             oldStyleContextFactory.getContext()
2016-01-24 23:01:50+0100 [-] [caldav-1]         exceptions.AttributeError: 'NoneType' object has no attribute 'getContext'
2016-01-24 23:01:50+0100 [-] [caldav-1]        

I also tried letsencrypt's CA certificate, I had the same problem.
What might be the problem? Is it a bug or the server doesn't like the certificate for some reason?

Thanks a lot!