Skip to content
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

🌐Add Russian translation for docs/ru/docs/deployment/https.md #5494

Closed
wants to merge 3 commits into from
Closed

🌐Add Russian translation for docs/ru/docs/deployment/https.md #5494

wants to merge 3 commits into from

Conversation

emp7yhead
Copy link
Contributor

Russian translate docs/ru/docs/deployment/https.md
related: #1362

@codecov
Copy link

codecov bot commented Oct 13, 2022

Codecov Report

Base: 100.00% // Head: 100.00% // No change to project coverage 👍

Coverage data is based on head (0936686) compared to base (cf73051).
Patch has no changes to coverable lines.

❗ Current head 0936686 differs from pull request most recent head f00275f. Consider uploading reports for the commit f00275f to get more accurate results

Additional details and impacted files
@@            Coverage Diff            @@
##            master     #5494   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          540       540           
  Lines        13969     13946   -23     
=========================================
- Hits         13969     13946   -23     
Impacted Files Coverage Δ
fastapi/routing.py 100.00% <0.00%> (ø)
tests/test_datastructures.py 100.00% <0.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@github-actions
Copy link
Contributor

📝 Docs preview for commit dfc8d74 at: https://6348281334519d2192248ba3--fastapi.netlify.app

Но все гораздо сложнее, чем кажется.

!!! Подсказка
Если вы торопитесь или вам все равно, читайте следующие разделы пошаговой инструкции по настройке развертывания с использованием различных технологий.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Если вы торопитесь или вам все равно,

Если вы торопитесь или вам неинтересно,


Чтобы **понять основы HTTPS** с точки зрения пользователя, изучите <a href="https://howhttps.works/ru/" class="external-link" target="_blank">https://howhttps.works/</a>.

Итак, **с точки зрения разработчика** есть несколько вещей, которые надо держать в уме, размышляя о HTTPS:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

так, с точки зрения разработчика

После этого - запятая.

которые надо держать в уме

о которых следует помнить

Copy link
Contributor

@Winand Winand Oct 31, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

С точки зрения разработчика нужно учитывать следующие особенности работы с функционирования HTTPS:

* У сертификатов есть **срок действия**.
* Он **истекает**.
* После этого сертификаты необходимо **обновить**, **вновь получить** от третьей стороны.
* Шифрование соединения происходит на **TCP-уровне**.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

на TCP-уровне.

на уровне протокола ТСР

* Так что **сертификация и шифрование** выполняется **перед HTTP**.
* **TCP не знает о "доменах"**. Только об IP-адресах.
* Информация **о конкретном запрашиваемом домене** содержится в **данных HTTP**.
* **HTTPS-сертификаты** "сертифицируют" **определенный домен**, но протокол и шифрование происходит на TCP-уровне, **не зная** с каким доменом ведется работа.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

но протокол и шифрование

Честно говоря, непонятно, что понимается под термином протокол"...

на TCP-уровне, не зная с каким доменом ведется работа.

на уровне протокола ТСР, когда ещё не известно имя домена

* **По умолчанию**, это означает, что вы можете иметь только **один HTTPS-сертификат на IP-адрес**.
* Вне зависимости от того, насколько большой у вас сервер или насколько малы приложения, которые имеются на нем.
* Несмортря на это, имеется **решение** данной проблемы.
* Существует **расширение** протокола **TLS** (того, что управляет шифрованием на TCP-уровне, перед HTTP), которое называется **<a href="https://ru.wikipedia.org/wiki/Server_Name_Indication" class="external-link" target="_blank"><abbr title="Индикация имени сервера">SNI</abbr></a>**.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Индикация имени сервера

Указание имени сервера


### TLS с SNI расширением

**Только один процесс** на сервере может слушать определенный **порт** на определенном **IP-адресе**. Могут быть и другие процессы, слушающие на других портах тот же самый IP-адрес, но только один процесс для каждой комбинации IP-адреса и порта.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

но только один процесс для каждой комбинации IP-адреса и порта.

но может быть только один процесс для каждой комбинации IP-адреса и порта.


### Расшифровка запроса

Прокси-сервер завершения TLS будет использовать выбранный способ шифрования для **расшифровки запроса**, и перенаправит **простой (расшифрованный) HTTP-запрос** процессу запущенного приложения (например процесс Uvicorn с запущенным приложением FastAPI).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

например процесс Uvicorn

например, процессу Uvicorn


### HTTPS ответ

Прокси-сервер завершения TLS **зашифрует ответ** с использованием выбранного способа шифрования (that started with the certificate for `someapp.example.com`), и отправит его обратно браузеру.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(that started with the certificate for someapp.example.com),

???


Прокси-сервер завершения TLS **зашифрует ответ** с использованием выбранного способа шифрования (that started with the certificate for `someapp.example.com`), и отправит его обратно браузеру.

Далее, браузер удостоверится что ответ валиден, зашифрован правильным криптографическим ключом и т.д. Затем он **расшифровывает ответ** и обрабатывает его.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

удостоверится что

удостоверится, что

* **Запуск в качестве сервера** (по крайней мере, на время получения сертификата) на публичном IP-адресе, связанном с доменом.
* Как было сказано выше, только один процесс может слушать определенный IP и порт.
* По этой причине удобно, когда прокси-сервер завершения TLS управляет процессом обновления сертификата.
* С другой стороны, you might have to stop the TLS Termination Proxy momentarily, start the renewal program to acquire the certificates, then configure them with the TLS Termination Proxy, and then restart the TLS Termination Proxy. This is not ideal, as your app(s) will not be available during the time that the TLS Termination Proxy is off.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

???

@Xewus
Copy link
Contributor

Xewus commented Oct 29, 2022

Is it necessary to copy pictures?

@tiangolo tiangolo changed the title Add: russian translation for docs/ru/docs/deployment/https.md 🌐Add Russian translation for docs/ru/docs/deployment/https.md Oct 31, 2022
@github-actions github-actions bot mentioned this pull request Oct 31, 2022
@github-actions
Copy link
Contributor

github-actions bot commented Nov 2, 2022

📝 Docs preview for commit 0936686 at: https://63629ce248363a2f0264b3d4--fastapi.netlify.app

@emp7yhead
Copy link
Contributor Author

@Xewus idk what to do with pictures. I thought it can be useful if someone decide to translate them. Everything will be in one place

Copy link
Contributor

@Xewus Xewus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Кроме указанных двух моментов у меня предложений по улучшению нет. Как понадобится апрувнуть - тыкнешь справа верху на кнопку запрос.
И по картинкам. Учитывая скорость перевода документации - я б не стал надеяться, что кто-то за них возьмётся, а на перестановку ссылок всё-таки тратишь своё время.


Чтобы **понять основы HTTPS** с точки зрения пользователя, изучите <a href="https://howhttps.works/ru/" class="external-link" target="_blank">https://howhttps.works/</a>.

Итак, **с точки зрения разработчика** есть несколько вещей, которые надо держать в уме, размышляя о HTTPS:
**С точки зрения разработчика** нужно учитывать следующие особенности работы функционирования HTTPS:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

работы функционирования

Может одно слово оставить?

@Xewus
Copy link
Contributor

Xewus commented Nov 2, 2022

После тестов даётся ссылка, где можно глянуть результат. Там нет твоей страницы. Видимо запамятовал про fastapi/docs/ru/mkdocs.yml.

Но все гораздо сложнее, чем кажется.

!!! Подсказка
Если вы торопитесь или вам неинтересно, читайте следующие разделы пошаговой инструкции по настройке развертывания с использованием различных технологий.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

кажется, во фразе "по настройке развертывания" есть тавтология

* После этого сертификаты необходимо **обновить**, **вновь получить** от третьей стороны.
* Шифрование соединения происходит на **уровне протокола TCP**.
* Это на один уровень **ниже HTTP**.
* Так что **сертификация и шифрование** выполняется **перед HTTP**.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

сертификация

я бы сказала, что "проверка/обработка сертификата" чаще используется в таком контексте

* **HTTPS-сертификаты** "сертифицируют" **определенный домен**, но выбор протокола и шифрование происходит на уровне протокола TCP, когда имя домена еще **неизвестно**.
* **По умолчанию**, это означает, что вы можете иметь только **один HTTPS-сертификат на IP-адрес**.
* Вне зависимости от того, насколько большой у вас сервер или насколько малы приложения, которые имеются на нем.
* Несмортря на это, имеется **решение** данной проблемы.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Несмортря

Очепяточка :)

* **После** установления защищенного соединения, в качестве протокола соединения все еще **используется HTTP**.
* Данные **шифруются**, даже несмотря на то, что они посылаются с использованием **протокола HTTP**.

Нормальной практикой является ситуация, при которой **одна программа/HTTP-сервер**, запущенный на сервере (машине, хосте, и т.д.) и **управлениющий всеми частями HTTPS**: получение **зашифрованных HTTPS запросов**, отправка **расшифрованных HTTP запросов** конкретному HTTP приложению, запущенному на данном сервере (в нашем случае приложению **FastAPI**), прием **HTTP ответа** от приложения, **его шифрование** при помощи соответствующего **HTTPS сертификата** и его дальнейшая отправка обратно клиенту, используя **HTTPS**. Такой сервер называется **<a href="https://en.wikipedia.org/wiki/TLS_termination_proxy" class="external-link" target="_blank">прокси-сервер завершения TLS</a>**.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нормальной практикой

скорее "распространённой"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

мне кажется, первая часть предложения (до перечисления) слишком сложна для понимая :\

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Яндекс в доках употребляет "терминирование TLS", а не "завершение". Но тут я не знаю, как лучше, просто ссылка для ознакомления:)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

и управлениющий всеми частями HTTPS:

Опечатка.


### TLS с SNI расширением

**Только один процесс** на сервере может слушать определенный **порт** на определенном **IP-адресе**. Могут быть и другие процессы, слушающие на других портах тот же самый IP-адрес, но может быть только один процесс для каждой комбинации IP-адреса и порта.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

слушающие на других портах тот же самый IP-адрес

IP-адрес точно никто не слушает :)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Согласен. И ещё слишком много раз глагол "мочь" повторяется. Могу предложить что-то такое:

Только один процесс на сервере слушает один определённый порт на определённом IP-адресе. Процессы могут прослушивать каждый свои порты на одном и том же IP-адресе, но любой комбинации IP-адреса и порта будет соответствовать только один процесс.


Испольуя **SNI расширение**, которое обсуждалось выше, прокси-сервер завершения TLS будет проверять какой из TLS (HTTPS) сертификатов он должен использовать для соединения, используя тот, что совпадает с доменом ожидаемым клиентом.

В этом случает, будет использован сертификат для `someapp.example.com`.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
В этом случает, будет использован сертификат для `someapp.example.com`.
В этом случае будет использован сертификат для `someapp.example.com`.


Теперь когда между клиентом и сервером (конкретно между браузером и прокси-сервером завершения TLS) установлено **зашифрованное TCP-соединение**, они могут начать **HTTP-коммуникацию**.

Итак, клиент шлет **HTTPS-запрос**. Это всего лишь обычный HTTP-запрос переданный через зашифрованное TLS-соединение.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Итак, клиент шлет **HTTPS-запрос**. Это всего лишь обычный HTTP-запрос переданный через зашифрованное TLS-соединение.
Итак, клиент шлет **HTTPS-запрос**. Это всего лишь обычный HTTP-запрос, переданный через зашифрованное TLS-соединение.


### Расшифровка запроса

Прокси-сервер завершения TLS будет использовать выбранный способ шифрования для **расшифровки запроса**, и перенаправит **простой (расшифрованный) HTTP-запрос** процессу запущенного приложения (например, процессу Uvicorn с запущенным приложением FastAPI).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Прокси-сервер завершения TLS будет использовать выбранный способ шифрования для **расшифровки запроса**, и перенаправит **простой (расшифрованный) HTTP-запрос** процессу запущенного приложения (например, процессу Uvicorn с запущенным приложением FastAPI).
Прокси-сервер завершения TLS будет использовать выбранный способ шифрования для **расшифровки запроса** и перенаправит **простой (расшифрованный) HTTP-запрос** процессу запущенного приложения (например, процессу Uvicorn с запущенным приложением FastAPI).


### HTTPS ответ

Прокси-сервер завершения TLS **зашифрует ответ** с использованием выбранного способа шифрования (который начался с сертификата для `someapp.example.com`), и отправит его обратно браузеру.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Прокси-сервер завершения TLS **зашифрует ответ** с использованием выбранного способа шифрования (который начался с сертификата для `someapp.example.com`), и отправит его обратно браузеру.
Прокси-сервер завершения TLS **зашифрует ответ** с использованием выбранного способа шифрования (который начался с сертификата для `someapp.example.com`) и отправит его обратно браузеру.


Затем, используя сертификат, клиент и прокси-сервер завершения TLS **определяют способ шифрования** дальнейшего **TCP-соединение**. Этим заканчивается **TLS-рукопожатие**.

После этого, между клиентом и сервером устанавливается **зашифрованное TCP-соединение**, которое обеспечивает TLS. Это соединение используется для начала фактического **HTTP-соединения**.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
После этого, между клиентом и сервером устанавливается **зашифрованное TCP-соединение**, которое обеспечивает TLS. Это соединение используется для начала фактического **HTTP-соединения**.
После этого между клиентом и сервером устанавливается **зашифрованное TCP-соединение**, которое обеспечивает TLS. Это соединение используется для начала фактического **HTTP-соединения**.


После этого, браузер будет взаимодействовать с данным IP-адресом на **443 порте** (порт HTTPS).

Первая часть взаимодействия это просто установление соединения мужду клиентом и сервером для согласования используемых криптографических ключей и т.д.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Первая часть взаимодействия это просто установление соединения мужду клиентом и сервером для согласования используемых криптографических ключей и т.д.
Первая часть взаимодействия - это просто установление соединения мужду клиентом и сервером для согласования используемых криптографических ключей и т.д.


<img src="/img/deployment/https/https07.svg">

Клиент (браузер) будет знать, что ответ пришел от верного сервера, потому что будет использоваться криптография, о которой они предварительно договорились при помощи **HTTPS-сертификата**.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

будет использоваться криптография

мне кажется, в данном случае "метод шифрования" будет более уместен, хоть это и не калька

@github-actions
Copy link
Contributor

📝 Docs preview for commit f00275f at: https://639ce29a1f184e008c3a2dcb--fastapi.netlify.app

@emp7yhead emp7yhead closed this by deleting the head repository Feb 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants