-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement TLS-ALPN challenge method #136
Comments
This is available in LE production: https://community.letsencrypt.org/t/tls-alpn-validation-method/63814 |
🙌 |
We need to get in here somehow, I guess: https://github.com/glyph/txsni/blob/fc638e8f2f793284eecce606dc0183e57128bbf5/txsni/snimap.py#L137 |
What if this was converted to twisted? Then certificate requests could be delegated to dehydrated (a letsencrypt client written in bash). I don't know how to convert this to twisted or add listeners for certain next-protocols. https://github.com/lukas2511/dehydrated/blob/master/docs/tls-alpn.md#example-responder |
Looks pretty straightforward to me. The magic word is Here's where the next protocol speaks https://github.com/twisted/twisted/blob/trunk/src/twisted/web/http.py#L2885 tls-alpn isn't supposed to speak or listen, so it might work without changing that. It should close the connection right after it sends the certificate. Unfortunately IIUC there isn't a callback for 'negotiation done but no data received yet'. All you'd have to do is add tls-alpn to the end of acceptableProtocols, have a second HostDirectoryMap for an alpn/ directory, and send a different cert if tls-alpn.
Could prototype with an existing alpn client and then implement the entire flow in Python. |
This is difficult. It looks like the alpn callback fires after selectContext() return even though dehydrated's version seems to manage right after the SNI servername is given. |
glyph/txsni#26 sends the alpn / acme certificate if it exists |
The endpoint should be switched to use this method, too.
The text was updated successfully, but these errors were encountered: