Два препятствия, с которыми сталкиваются разработчики при переходе на HTTPS, — это концепции и терминология. В этом руководстве представлен краткий обзор обоих.
Краткое содержание
- Используются открытые/закрытые ключи для подписи и расшифровки сообщений между браузером и сервером.
- Центр сертификации (CA) — это организация, которая гарантирует соответствие между открытыми ключами и общедоступными DNS-именами (например, «www.foobar.com»).
- Запрос на подпись сертификата (CSR) — это формат данных, который объединяет открытый ключ с некоторыми метаданными об объекте, владеющем ключом.
Каковы пары открытого и закрытого ключей?
Пара открытого/закрытого ключей — это пара очень больших чисел, которые используются в качестве ключей шифрования и дешифрования и имеют особые математические отношения. Распространенной системой пар ключей является криптосистема RSA . Открытый ключ используется для шифрования сообщений, и сообщения могут быть дешифрованы только с помощью соответствующего закрытого ключа . Ваш веб-сервер объявляет свой открытый ключ всему миру, и клиенты (например, веб-браузеры) используют его для загрузки безопасного канала на ваш сервер.
Что такое центр сертификации?
Центр сертификации (CA) — это организация, которая гарантирует соответствие между открытыми ключами и общедоступными DNS-именами (например, «www.foobar.com»). Например, как клиент узнает, является ли конкретный открытый ключ истинным открытым ключом для www.foobar.com? Априори невозможно узнать. Центр сертификации подтверждает, что определенный ключ является истинным для конкретного сайта, используя свой собственный закрытый ключ для криптографической подписи открытого ключа веб-сайта. Эту подпись вычислительно невозможно подделать. Браузеры (и другие клиенты) поддерживают хранилища якорей доверия , содержащие открытые ключи, принадлежащие известным центрам сертификации, и используют эти открытые ключи для криптографической проверки подписей центров сертификации.
Сертификат X.509 — это формат данных, который объединяет открытый ключ с некоторыми метаданными об объекте, владеющем ключом. В случае с Интернетом владельцем ключа является оператор сайта, а важными метаданными является DNS-имя веб-сервера. Когда клиент подключается к веб-серверу HTTPS, веб-сервер предоставляет свой сертификат клиенту для проверки. Клиент проверяет, что срок действия сертификата не истек, что DNS-имя соответствует имени сервера, к которому пытается подключиться клиент, и что известный центр сертификации привязки доверия подписал сертификат. В большинстве случаев центры сертификации не подписывают сертификаты веб-сервера напрямую; обычно существует цепочка сертификатов , связывающая якорь доверия с промежуточным подписывающим лицом или подписывающими лицами и, наконец, с собственным сертификатом веб-сервера ( конечным объектом ).
Что такое запрос на подпись сертификата?
Запрос на подпись сертификата (CSR) — это формат данных, который, как и сертификат, объединяет открытый ключ с некоторыми метаданными об объекте, владеющем ключом. Однако клиенты не интерпретируют CSR; Центры сертификации делают. Когда вы хотите, чтобы ЦС ручался за открытый ключ вашего веб-сервера, вы отправляете ЦС CSR. Центр сертификации проверяет информацию в CSR и использует ее для создания сертификата. Затем центр сертификации отправляет вам окончательный сертификат, и вы устанавливаете этот сертификат (или, что более вероятно, цепочку сертификатов) и свой закрытый ключ на свой веб-сервер.