-
Notifications
You must be signed in to change notification settings - Fork 132
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
How to compile and configure BoringSSL with nginx to support TLSv1.3 #87
Comments
net::ERR_SPDY_PROTOCOL_ERROR? |
nope, not supported ssl protocol in nginx error log |
You can see in https://github.com/nginx-modules/docker-nginx-boringssl/blob/master/mainline/alpine/Dockerfile , from line115 to line127 |
@railjty it's not worked |
For draft-18, you need branch 2987,because |
You can get it like this: git clone -b 2987 https://github.com/google/boringssl /usr/src/boringssl |
Also there is some wrong filename in the command ,I will put a file that is ok for me |
Ok! Gei it from this:https://cdn.jintaiyang123.org/static/boringssl.tar.gz |
just compile it |
Cloudflare now is using draft 22 and 23, not draft 18! |
yes, with openssl I think, because I can’t find worked solution for boringssl +nginx with draft 22/23 |
@railjty Test successfully with tlsv1.3 draft 18 using boringssl version 2987 However, as you said
Which version of boringssl Cloudflare are using? Do you have any ideals? |
They are using master branch(Sorry, but I am busy with my studying now. I can't answer this at all.) |
I was looking for the same solution and came across this post. I found this patch: https://l.avinz.nl/enabletls13boringssl It will enable BoringSSL's TLS 1.3 draft 22 and 23 (Chrome stable) and the final TLS 1.3 standard (BoringSSL master only). It is quite simple.
|
@xetorixik Excellent Patch! Problem solved. It seems that tls 1.3 draft 28 will be the final version and both openssl and boringssl are working on it and will be enabled by default in the future. |
That's very good ! I follow it and reconfigure boringssl and nginx . And it worked . But bad thing is you cant configure the tls1.3 ciphersuites now. |
FYI: kn007/patch#4 |
Hello. This is my patch files (OpenSSL 1.1.1-pre8-dev) : https://github.com/hakasenyang/openssl-patch/blob/master/openssl-equal-pre8_ciphers.patch Result testssl.sh : https://ssl.hakase.io/ssltest/hakase.io.html I do not speak English well. Sorry. |
@hakasenyang Thanks for your work, this is a super useful patch. |
Thanks all for these great patches! |
Patch code to enable TLS 1.3 on BoringSSL seems to be updated. |
Because I am subscribed to the channel of Buik. |
Update: nginx officially support enabled TLSv1.3 with BoringSSL in this commit |
Is there a patch for boringssl to support multiple drafts? Would be similar to what @hakasenyang did with openssl earlier, except for boringssl. Compiling with the recent patch mentioned by @xetorixik works for the final draft only (nginx stable), which currently has limited support (Chrome developer channel). |
BoringSSL now changed to TLS1.3 RFC |
Thank you @railjty, interesting. |
@JSkier21 @railjty Problem is that Google removed TLS 1.3 draft28 2 days ago (googlesource.com) and it seems logical that draft23 will follow soon in favor of TLS 1.3 RFC only. (Before draft 23,28 and RFC). As Chrome and Firefox production version only supports TLS 1.3 draft and won't work yet on TLS 1.3 RFC. You will be faced with a choice in this interim phase. In my opinion there are 3 options for now:
|
@xetorixik, I just modified the 25 patch and defined tls13_all instead of _rfc. I now get final, draft 28, and draft 23 presented as options. Works great in Firefox and Chrome. |
@JSkier21 you mean you edited include/openssl/ssl.h for enum tls13_variant_t changing
to
|
seems i managed to re-enable all TLS 1.3 drafts via
but wondering if i missed anything ? testssl check
|
@centminmod, I just diffed my new internal.h file containing the two new instances defining the tls13_variant_t tls13_variant = tls13_all, added those lines to the existing patch. Our testssl results look the same for tls 1.3 report. You did more than me on the ssl.h files. Should work fine with only you're last sed. Is there any reason why you're changing ssl.h file? I ask out of curiosity (maybe I'm missing something). |
I am just winging it heh. Will try just editing internal.h only FYI i am not using boring patches as 1.15.3 enables tls 1.3 out of box with BoringSSL detected edit: yup confirmed editing internal.h only is enough to get all TLS 1.3 drafts re-enabled now
|
@JSkier21 Seems as Github is not u-to-date and not synced yet with googlesource.com as Github still offers draft 23,28 and RFC. Draft 28 is removed from googlesource.com and it is It seems logical that the removal of draft 23 follows. After that both Chrome and Firefox won't work with TLS 1.3 anymore, until both browsers support TLS 1.3 RFC. As of today both won't support TLS 1.3 RFC. |
@xetorixik, you're referring to boringssl master correct? The old drafts are still in master on gs from what I can tell. I'm pulling from boringssl gs master and using the patch on GitLab for tls1.3 support. |
@JSkier21 It is on its way and is ready in the pipeline as written here: https://boringssl.googlesource.com/boringssl/+/6cacb472c42ddbe1553a1263d651ae64a29efc5f As addition. So that all of us can enjoy those enhancements. Thanks. |
@xetorixik It seems github & googlesource version of boringssl was exactly the same and it removed draft 28 as well. |
https://boringssl.googlesource.com/boringssl/+/6cacb472c42ddbe1553a1263d651ae64a29efc5f |
@S8Cloud Draft 28 is not removed yet as can be viewed here , diff to remove TLS 1.3 draft 28 is present but not yet merged. |
@xetorixik Maybe github version is just a mirror of googlesource so it doesn't include unmerged commit. |
I think Chrome and Firefox browsers will be out with final support in October on their respective stable channels. That said, a fork will help carry over my testing with this. I was planning on forking enabletls13boringssl to submit my additions, should be able to do that soon hopefully. I'll give him a heads up as well. |
@JSkier21 if so in october. That means you have to:
|
I saw a blog on your site showig that Cloudflare is using BoringSSL and issue #78 also prove the usage of BoringSSL.
However I compiled BoringSSL with nginx 1.13.7 using configuration
--with-openssl=/path/to/boringssl --with-openssl-opt=enable-tls1_3
and it could not support TLSv1.3 Draft18 (like Cloudflare does).BoringSSL supported TLSv1.3 draft18 since this commit but I could not find an wiki or an explanation about how to compile and configure BoringSSL with nginx to support TLSv1.3 draft18.
The text was updated successfully, but these errors were encountered: