В статье не следовало использовать термин SSL-сертификат . SSL - это уровень защищенных сокетов (который был заменен TLS много лет go). SSL и TLS определяют рукопожатие, которое используется для согласования шифрования в соединении.
Чтобы включить SSL на веб-сервере, вам необходимо иметь сертификат для проверки личности вашего сервера, и это стало известно как «сертификат SSL». Msgstr ".
Хотя это не часто используется в Интернете, в SSL / TLS обе стороны могут предоставить сертификат для взаимной аутентификации.
Обычно у вас есть сертификат x.509 . Это касается службы уведомлений pu sh.
Сертификат x.509 содержит некоторую информацию, включая личность владельца сертификата, его закрытый ключ и подпись от доверенной стороны, которую можно использовать для проверки информации.
Для уведомлений pu sh разработчик создает запрос сертификата и отправляет его в Apple, который подписывает своим закрытым ключом. В этом случае Apple является доверенной стороной.
Когда этот сертификат впоследствии представляется на сервер Apple, они могут проверить эту подпись, используя свой ключ publi c, чтобы подтвердить личность подключающейся стороны.
Вы зашифровали сообщение своим закрытым ключом (Apple может расшифровать его с помощью ключа publi c, включенного в сертификат).
Это означает, что, пока разработчик хранит свой закрытый ключ в безопасности (именно поэтому вы не будете напрямую подключаться к сервису pu sh из своего приложения, например), тогда Apple сможет будьте уверены в подлинности сервера, устанавливающего соединение.
Если кто-то пытается выдать себя за ваш сервер, то, пока вы храните свой личный ключ в безопасности, он не сможет должным образом зашифровать данные. Если они используют поддельный сертификат, который использует пару открытых / закрытых ключей, то подпись на сертификате будет недействительной, и Apple отклонит ее.