Gunicorn: --ssl-рд╕рдВрд╕реНрдХрд░рдг рдзреНрд╡рдЬ рдореЗрдВ рдирд╛рдорд┐рдд рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 15 рд╕рд┐рддре░ 2015  ┬╖  37рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: benoitc/gunicorn

рдореИрдВ рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдФрд░ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдЧрдирд┐рдХреЛрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рдЯреАрдПрд▓рдПрд╕ рдХрдиреЗрдХреНрд╢рди 1.0 рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЯреАрдПрд▓рдПрд╕ 1.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрдирд┐рдХреЛрд░реНрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ?

Improvement Documentation help wanted FeaturSSL - Mailing List -

рд╕рднреА 37 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рд╛рдп @rrajaravi , рдХреНрдпрд╛ рдЖрдкрдиреЗ http://docs.gunicorn.org/en/latest/settings.html#ciphers рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛?

рдЯрдХреНрдХрд░

рдпрд╣ рдХреИрд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ?

рдХреНрдпрд╛ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдЯреАрдПрд▓; рдбреАрдЖрд░
Gunicorn рдХреЗрд╡рд▓ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ:
рдЯреАрдПрд▓рдПрд╕рд╡реА1
рдПрд╕рдПрд╕рдПрд▓рд╡реА2

рдФрд░ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:
рдПрд╕рдПрд╕рдПрд▓рд╡реА3
рдПрд╕рдПрд╕рдПрд▓рд╡реА23
рдЯреАрдПрд▓рдПрд╕рд╡реА1_1
рдЯреАрдПрд▓рдПрд╕рд╡реА1_2

@berkerpeksag http://docs.gunicorn.org/en/latest/settings.html#ciphers рдкрд░ рдореМрдЬреВрдж рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕рд╣реА рдирд╣реАрдВ рд▓рдЧрддреЗ рд╣реИрдВред
рдореБрдЭреЗ ssl.py рдореЗрдВ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдорд┐рд▓реЗред рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА, TLSv1 рдФрд░ SSLv2 рдХреЛ рдЫреЛрдбрд╝рдХрд░, Ubuntu 14.04 LTS, Python 3.5.1, OpenSSL 1.0.1f 6 рдЬрдирд╡рд░реА 2014 рдкрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдмрд╛рдХреА рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓:
[реирежрезрем-режрей-реиреи режрео:релрез:рекреп +режрежрежреж] [реирепреирек] [рддреНрд░реБрдЯрд┐] рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЕрдкрд╡рд╛рдж:
рдЯреНрд░реЗрд╕рдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо):
рдлрд╝рд╛рдЗрд▓ "/home/me/Envs/myproject/lib/python3.5/site-packages/gunicorn/workers/sync.py", рд▓рд╛рдЗрди 126, рд╣реИрдВрдбрд▓ рдореЗрдВ
self.cfg.ssl_options)рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.5/ssl.py", рдкрдВрдХреНрддрд┐ 1064, рд░реИрдк_рд╕реЙрдХреЗрдЯ рдореЗрдВрд╕рд┐рдлрд░ = рд╕рд┐рдлрд░)рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.5/ssl.py", рд▓рд╛рдЗрди 690, **init рдореЗрдВ
self._context.set_ciphers(рд╕рд┐рдлрд░)
ssl.SSLError: ('рдХреЛрдИ рд╕рд┐рдлрд░ рдирд╣реАрдВ рдЪреБрдирд╛ рдЬрд╛ рд╕рдХрддрд╛ред',)


/usr/рд╕реНрдерд╛рдиреАрдп/lib/python3.5/ssl.py
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдерд┐рд░рд╛рдВрдХ рд╡рд┐рднрд┐рдиреНрди рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡реЗрд░рд┐рдПрдВрдЯ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддреЗ рд╣реИрдВ:

PROTOCOL_SSLv2
PROTOCOL_SSLv3
PROTOCOL_SSLv23
PROTOCOL_TLSv1
PROTOCOL_TLSv1_1
PROTOCOL_TLSv1_2

рдЗрд╕реЗ рдЯреНрд░рд╛рдИ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, @edwardotisред рдореИрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рд░рд╣рд╛ рд╣реВрдВред

@berkerpeksag рднреА рд╣рдо рдЕрдЪреНрдЫреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

TLSv1 рдкреБрд░рд╛рдиреЗ рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдареАрдХ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рд╣рдо рд╕рд░реНрд╡реЛрддреНрддрдо рдЙрдкрд▓рдмреНрдз рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреЛ SSLv23 рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рд╛рде рд╣реА, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ SSLv2 рдпрд╛ SSLv3 рдХрд╛ рдЙрдкрдпреЛрдЧ Gunicorn 20 рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдПрдХ рдЕрдкрд╡рд╛рдж рдЙрдард╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЕрдЧрд▓реЗ 19.x рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдкрджрд╛рд╡рдирдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛)ред

@berkerpeksag : +1:

рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ? рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдореБрдЭреЗ рдЗрд╕реЗ рдПрдХ рд╢реЙрдЯ рджреЗрдиреЗ рдФрд░ рдкреАрдЖрд░ рдЦреЛрд▓рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА .. рд╕рд┐рдлрд░ рдХреЛ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛> рдЯреАрдПрд▓рдПрд╕рд╡реА 1.0 рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдФрд░ рд╣рдо 1 рд╕реЗ рдЕрдзрд┐рдХ рдЯреАрдПрд▓рдПрд╕ рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ .. рдпрд╣ рд╕рд┐рд░реНрдл 1.0 рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИ (рд╣рдордиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд▓реЛрдЧреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣рд╛рдВ рд╕реВрдЪреАрдмрджреНрдз рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реБрдЖ) - рдмрд╕ No cipher can be selected рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИ

@AndrewJHart рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛! :) рдзрдиреНрдпрд╡рд╛рдж!

рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ --ssl-version рд▓рд┐рдП рдПрдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпреЗ рд╕реНрдерд┐рд░рд╛рдВрдХ ssl stdlib рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдЖрддреЗ рд╣реИрдВред

$ python -c "import ssl; print(ssl.PROTOCOL_SSLv23)"     
  2
$ python -c "import ssl; print(ssl.PROTOCOL_TLSv1_2)"
  5

рдмрд╕ --ssl-version 2 рдпрд╛ --ssl-version 5 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ TLS 1.2 рд╕рд┐рдлрд░ рд╕рдорд░реНрдерди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрджрд┐ рдЖрдк рдПрд╕рдПрд╕рдПрд▓ рдореЗрдВ рдХреБрдЫ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ @AndrewJHart #1440 рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рд╣рдореЗрдВ рд╕рдВрджрд░реНрдн рдкрд░ рдмреЗрд╣рддрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП SSLContext рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ рд╕рд░реНрд╡рд░ рд╕рд┐рдлрд░ рдСрд░реНрдбрд░ рд╡рд░реАрдпрддрд╛ рд╕реЗрдЯ рдХрд░рдирд╛ред рд╕рд┐рдВрдХ рд╡рд░реНрдХрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдореИрдВ рдЙрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреНрд╖рдг рднрд░ рдореЗрдВ рдПрдХ рдЕрдВрддрд░ рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ред рдПрд╕рдПрд╕рдПрд▓ рд╕рдорд░реНрдерди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдорджрдж рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред

рд╕рд╛рде рд╣реА, TLSv1 рдХреЗ рдмрдЬрд╛рдп SSLv23 рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП gunicorn/config.py рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореЗрд░реЗ рдХрд╣рдиреЗ рдХрд╛ рдорддрд▓рдм рдерд╛ #1140

рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреНрдпреЛрдВ рдЦреЛрд▓рд╛ рдЧрдпрд╛ред рдореИрдВрдиреЗ --ssl-version 2 рд╕рд╛рде Gunicorn рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рдкрд╛рдпрд╛ рдХрд┐ TLS 1.2 рд╕рд┐рдлрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВ рдмрдВрдж рдХрд░ рджреВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдХреГрдкрдпрд╛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ рдФрд░ рд╕рдордЭрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЧрд▓рддреА рд╕реЗ рдРрд╕рд╛ рдХрд┐рдпрд╛ рд╣реИред

рдореИрдВрдиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП #1249 рдЦреЛрд▓рд╛ред

рдореИрдВрдиреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐:

рдХ) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП 'SSLv23' рдпрд╛ 'TLSv1_2' рдХреЗ рдмрдЬрд╛рдп 2 , рдпрд╛ 5 ред
b) рд╣рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ Python рдбреЙрдХреНрд╕ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЙрдирдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред https://docs.python.org/3.5/library/ssl.html stdlib рдореЗрдВ рд╕рдмрд╕реЗ рд▓рдВрдмреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рдирд╣реАрдВ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреМрди рд╕реЗ рд╡рд┐рдХрд▓реНрдк рдЙрдкрд▓рдмреНрдз рд╣реИрдВред

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд▓реЗрдмрд▓ рдЬреЛрдбрд╝рдХрд░ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рд╛ рдЧрдпрд╛ред

рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдЬрд░реВрд░реА рд╣реИ, рдЕрдЧрд░ рд╣рдо рдЗрд╕реЗ 19.5 рд░рд┐рд▓реАрдЬ рд╕реЗ рдкрд╣рд▓реЗ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╛рдиреА рд╢рд╛рджреА рд╕реЗ рдкрд╣рд▓реЗ) рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ :)

рдпрд╣ рдЕрднреА рднреА рдХреЗрд╡рд▓ рдирд╛рдорд┐рдд рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╣реИ
--рдПрд╕рдПрд╕рдПрд▓-рд╕рдВрд╕реНрдХрд░рдг рдзреНрд╡рдЬред

рд╕реЛрдо, реи рдордИ реирежрезрем рдХреЛ режрел:рекрей рдмреЗрдиреЛрдЗрдЯ рдЪреЗрд╕рдиреЗрдЙ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЕрдЧрд░ рд╣рдо рдЗрд╕реЗ 19.5 рд░рд┐рд▓реАрдЬ рд╕реЗ рдкрд╣рд▓реЗ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
(рдпрд╛рдиреА рд╢рд╛рджреА рд╕реЗ рдкрд╣рд▓реЗ) рдЕрдЪреНрдЫрд╛ рд░рд╣реЗрдЧрд╛ :)

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЦреБрд▓реА/рдмрдВрдж рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/benoitc/gunicorn/issues/1114#issuecomment -216225302

рдЖрдЗрдП рдЕрднреА рдХреЗ рд▓рд┐рдП 3.x рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рднреВрд▓ рдЬрд╛рдПрдВред рдкрд╛рдпрдерди рдХреЗ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░рдВрддрд░ рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ?

рдпрд╣рд╛рдБ рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдкреНрд░рдорд╛рдг рд╣реИ: https://github.com/benoitc/gunicorn/pull/1454

рдХреНрдпрд╛ рдЯреАрдПрд▓рдПрд╕ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдпрд╛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЖрдо рдмрд╛рдд рд╣реИред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕реЗ рдореБрдЭреЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "--ssl-version" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдпрджрд┐ рдЗрд╕реЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП SSL3 рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ рдФрд░ TLS1.0 рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ)ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ SSLContext рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдПрдХ рдирдпрд╛ рд╡рд┐рдХрд▓реНрдк --ssl-options рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ (рд╣рдо рд╢рд╛рдпрдж рдХреЗрд╡рд▓ ssl.create_default_context() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЗрд╕рд▓рд┐рдП SSLv3 рдФрд░ TLS 1.0 рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ) рдЪреВрдВрдХрд┐ рд╡рд╣рд╛рдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрдпреЛрдЬрди рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ --ssl-version рдирд╛рдорд┐рдд рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдЧрд╛ рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕реЗ рдЕрднреА рднреА рдПрдХ Gunicorn рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

ssl_options = ssl.OP_NO_COMPRESSION | ssl.OP_NO_SSLv2 | ssl.OP_NO_SSLv3

рдкреНрд░реЛрдЯреЛрдХреЙрд▓ _рдФрд░ рд╕рдЯреАрдХ рд╕рдВрд╕реНрдХрд░рдг_ рджреЛрдиреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PROTOCOL_ * рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╣рд┐рд╖реНрдХреГрдд рд╣реЛ рд░рд╣рд╛ рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ ssl_options рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВрдиреЗ #1680 рдЙрдард╛рдпрд╛ред

1890 рдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ред

рд╢рд╛рдпрдж рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдореЗрд░реЗ рд▓рд┐рдП рдХреБрдЫ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рд╣реЛ? рдореИрдВ рдХреБрдЫ рд╕рдордп рд╕реЗ рдЗрд╕рд╕реЗ рдЬреВрдЭ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣рд╛рдБ рдореЗрд░рд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рд╣реИ:

Python 3.4.3
gunicorn==19.9.0
pyOpenSSL==18.0.0
cryptography==2.4.2

рдореИрдВ рдЧрдирд┐рдХреЛрд░реНрди рдлреНрд▓реИрдЧ --ssl-version 5 рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рдореЗрд░рд╛ рд╕рд░реНрд╡рд░ рдЯреАрдПрд▓рдПрд╕ 1.2 рдХреА рд╕реЗрд╡рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЯрди рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╕рд┐рдлрд░ рд╕реВрдЯ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореИрдВ рд╕рд┐рдлрд░ рд╕реБрдЗрдЯреНрд╕ рдХреЛ рдХреИрд╕реЗ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдореИрдВрдиреЗ --ciphers рдзреНрд╡рдЬ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╕рд╛рде рдХреЛрдИ рднрд╛рдЧреНрдп рдирд╣реАрдВ рдерд╛ред

рдзрдиреНрдпрд╡рд╛рдж!

--ssl-version 5 --ciphers ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256
рдареАрдХ рдХрд╛рдо рдХрд░реЗрдВ:

~# Opensl s_client-рдХрдиреЗрдХреНрдЯ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ:443 -рд╕рд┐рдлрд░ ECDHE-RSA-AES256-GCM-SHA384
рдХрдиреЗрдХреНрдЯреЗрдб(00000003)
рдЧрд╣рд░рд╛рдИ = рей...

~# Opensl s_client -рдХрдиреЗрдХреНрдЯ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ:443 -рд╕рд┐рдлрд░ DHE-RSA-AES256-GCM-SHA384
рдХрдиреЗрдХреНрдЯреЗрдб(00000003)
резрекрежрекрепренрелремрепреорезремремрекреж: рддреНрд░реБрдЯрд┐: резрекрежрепрекрекрезреж : рдПрд╕рдПрд╕рдПрд▓ рджрд┐рдирдЪрд░реНрдпрд╛: ssl3_read_bytes : sslv3 рдЪреЗрддрд╛рд╡рдиреА рд╣рд╛рде рдорд┐рд▓рд╛рдирд╛ рд╡рд┐рдлрд▓рддрд╛:../ssl/record/rec_layer_s3.c : резрекрежрен: рдПрд╕рдПрд╕рдПрд▓ рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрдЦреНрдпрд╛ рекреж

рдзрдиреНрдпрд╡рд╛рдж @lemrouchред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдХреНрдпреЛрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред рдпрд╣ рдЕрдм рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ!

рдЧрдирд┐рдХреЛрд░реНрди рдлреНрд▓рд╛рд╕реНрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП TLS1.0 рдХреЗ рдмрдЬрд╛рдп TLS 1.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ? рдХреНрдпрд╛ рдХреБрдЫ рдХреГрдкрдпрд╛ рдЯрд░реНрдорд┐рдирд▓ рдХрдорд╛рдВрдб рдпрд╛ рдХреЛрдб рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдбрд╛рд▓рдирд╛ рд╣реИ?

@rkbala рдпрд╣ рдореЗрд░реЗ рдлреНрд▓рд╛рд╕реНрдХ рдРрдк рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХреЛрдб рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

...
from ssl import SSLContext, PROTOCOL_TLSv1_2, OP_NO_SSLv3, OP_NO_TLSv1, OP_NO_TLSv1_1
...
ssl = SSLContext(PROTOCOL_TLSv1_2)
ssl.set_ciphers('ECDH+AES256:ECDH+AES128:' + 
                '!aNULL:!eNULL:!MD5:!DSS:!RC4:!SSLv2:!SSLv3:!TLSv1')
ssl.options |= OP_NO_SSLv3
ssl.options |= OP_NO_TLSv1
ssl.options |= OP_NO_TLSv1_1
ssl.load_cert_chain('/etc/letsencrypt/live/fullchain.pem',
                    '/etc/letsencrypt/live/privkey.pem')
...
if __name__ == '__main__':
    app.run(host='0.0.0.0', port='443', ssl_context=ssl)

@rkbala рдпрд╣ рдореЗрд░реЗ рдлреНрд▓рд╛рд╕реНрдХ рдРрдк рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХреЛрдб рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

...
from ssl import SSLContext, PROTOCOL_TLSv1_2, OP_NO_SSLv3, OP_NO_TLSv1, OP_NO_TLSv1_1
...
ssl = SSLContext(PROTOCOL_TLSv1_2)
ssl.set_ciphers('ECDH+AES256:ECDH+AES128:' + 
                '!aNULL:!eNULL:!MD5:!DSS:!RC4:!SSLv2:!SSLv3:!TLSv1')
ssl.options |= OP_NO_SSLv3
ssl.options |= OP_NO_TLSv1
ssl.options |= OP_NO_TLSv1_1
ssl.load_cert_chain('/etc/letsencrypt/live/fullchain.pem',
                    '/etc/letsencrypt/live/privkey.pem')
...
if __name__ == '__main__':
    app.run(host='0.0.0.0', port='443', ssl_context=ssl)

@pixelrebel рдзрдиреНрдпрд╡рд╛рдж !! рдореИрдВ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛ рджреВрдВрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдмрддрд╛ рджреВрдВрдЧрд╛ред

рдЗрд╕ ssl.options |=OP_NO_* рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ?

рдХреНрдпрд╛ рд╣рдо рд╕рд┐рдлрд░ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╛ рдЙрдкрд░реЛрдХреНрдд set_ciphers рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рд┐рдлрд░ рд╕реЗрдЯ рдХрд░реЗрдЧрд╛?

@rkbala рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝-рдпрд╛ рдСрдкрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рдереАред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ... рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд╛рдпрдХред

рдЖрдк рд╕рд┐рдлрд░ рдХреЛ TLS 1.2 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд░рд╛ рдРрдк рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд▓реИрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдХреЗрд╡рд▓ рд╕рд┐рдлрд░ рд╕реНрд▓реИрдХрдмреЙрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред

@rkbala IO рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЙрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЙрд╕ рд╕рдордп, рдореБрдЭреЗ рдЕрдкрдиреЗ рдРрдк рдХреЛ рдХреЗрд╡рд▓ TLS1.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП OP_NO_* рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдФрд░ рдХреЛрдИ рдХрдо рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВред

@rkbala рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝-рдпрд╛ рдСрдкрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рдереАред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ... рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд╛рдпрдХред

рдЖрдк рд╕рд┐рдлрд░ рдХреЛ TLS 1.2 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд░рд╛ рдРрдк рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд▓реИрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдХреЗрд╡рд▓ рд╕рд┐рдлрд░ рд╕реНрд▓реИрдХрдмреЙрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред

рдареАрдХ рд╣реИ рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЧрдирд┐рдХреЛрд░реНрди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрд╛рдпрдерди рд╕рд┐рдлрд░ рд▓реЗрддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ рдЧрд╝рд▓рдд рд╣реВрдВ рддреЛ рдореЗрд░реА рдЧрд▓рддреА рд╕реБрдЭрд╛рдПрдВред

рдХреНрдпрд╛ рдЙрдкрд░реЛрдХреНрдд рдлреНрд▓рд╛рд╕реНрдХ рдХреЛрдб рдХреЗрд╡рд▓ TLSv1.2 рдореЗрдВ рдлреНрд▓рд╛рд╕реНрдХ рдРрдк рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрдирд┐рдХреЛрд░реНрди рдмрдирд╛рддрд╛ рд╣реИ? рд╕рд╡рд╛рд▓ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЧрдирд┐рдХреЛрд░реНрди рдХреЗ рдЬрд░рд┐рдП рдлреНрд▓рд╛рд╕реНрдХ рдРрдк рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдЖрдЬ рд╣реА рд╕реАрдЦрд╛ рд╣реИ рдХрд┐ рдЧрдирд┐рдХреЛрд░реНрди рдЯрд░реНрдорд┐рдирд▓ рдХрдорд╛рдВрдб "рдЧрдирд┐рдХреЛрд░реНрди -рдПрд╕рдПрд╕рдПрд▓-рд╡рд░реНрдЬрди рдЯреАрдПрд▓рдПрд╕рд╡реА1_2 рдкреНрд░реЛрдЬреЗрдХреНрдЯ: рдРрдк " рдЯреАрдПрд▓рдПрд╕ v1.2 рдореЗрдВ рдлреНрд▓рд╛рд╕реНрдХ рдРрдк рд╢реБрд░реВ рдХрд░реЗрдЧрд╛ред рдХреМрди рд╕рд╛ рддрд░реАрдХрд╛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реИ?

рд╣рд╛рдБ, рдпрд╣ рдХреЗрд╡рд▓ TLS 1.2 рдХрд░рддрд╛ рд╣реИред рдмрд╛рдХреА рд╕рдм рдХреБрдЫ AFAIK рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдПрдХ рд╣реА рдкреНрд░рднрд╛рд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЧрдирд┐рдХреЛрд░реНрди рдХрд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рд╣реВрдВред рддреЛ рдирдордХ рдХреЗ рджрд╛рдиреЗ рдХреЗ рд╕рд╛рде рдореЗрд░реА рд╕рд▓рд╛рд╣ рд▓реЗрдВред

рд╣рд╛рдБ, рдпрд╣ рдХреЗрд╡рд▓ TLS 1.2 рдХрд░рддрд╛ рд╣реИред рдмрд╛рдХреА рд╕рдм рдХреБрдЫ AFAIK рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдПрдХ рд╣реА рдкреНрд░рднрд╛рд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЧрдирд┐рдХреЛрд░реНрди рдХрд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рд╣реВрдВред рддреЛ рдирдордХ рдХреЗ рджрд╛рдиреЗ рдХреЗ рд╕рд╛рде рдореЗрд░реА рд╕рд▓рд╛рд╣ рд▓реЗрдВред

рдзрдиреНрдпрд╡рд╛рдж @pixelrebel рдореИрдВ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдкрддрд╛

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Abraxos picture Abraxos  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

joekohlsdorf picture joekohlsdorf  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mrwillis picture mrwillis  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Bogdanp picture Bogdanp  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lordmauve picture lordmauve  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ