Войдите в систему с помощью Apple: убедитесь, что мой домен не работает

Я интегрировал Войти через Apple в свое мобильное приложение. Я выполнил шаги настройки, представленные на портале разработчика, загрузил файл apple-developer-domain-association.txt и разместил его на своем сервере по указанному пути.  введите описание изображения здесь Теперь файл загружается из веб-браузера, но я не могу подтвердить свой домен в учетной записи разработчика Apple. Это дает мне сообщение об ошибке «Не удалось подтвердить домен».

У кого-нибудь такая же проблема? как пройти успешную проверку


person Vinu David Jose    schedule 08.08.2019    source источник
comment
проверьте права apple-developer-domain-association.txt на сервере (должны быть доступны для чтения другими, то есть миром)   -  person ares777    schedule 08.08.2019
comment
@ user3344236 да! текстовый файл можно читать из браузера   -  person Vinu David Jose    schedule 08.08.2019
comment
Он работает и с https?   -  person ares777    schedule 08.08.2019
comment
@ user3344236 да   -  person Vinu David Jose    schedule 08.08.2019
comment
Раньше у меня была такая же проблема. Пытался загрузить файл еще раз и обнаружил, что он немного отличается. После обновления файла на нашем сервере я начал получать еще одну ошибку: An unexpected error occurred. Please try again. If the problem persists, please contact Apple Developer Program Support. https://developer.apple.com/support Обратился в службу поддержки, но они еще не ответили с каким-либо решением.   -  person Eugene Berdnikov    schedule 12.09.2019
comment
Точно такая же проблема. Работает как по http: //, так и по https: // через браузер. Точно так же не проходит проверка. Вы исправили? Служба поддержки Apple вернулась и сказала, что отправьте TSI, но я не уверен, что это решит проблему, поскольку это не проблема уровня кода. Однако запрос TSI отправлен. Посмотрим, с чем они вернутся.   -  person Hooligancat    schedule 20.09.2019
comment
Нашел решение - см. Мой ответ ниже или ответ @ MTZ4 ниже.   -  person Hooligancat    schedule 11.10.2019


Ответы (5)


Чтобы проверить домен для настройки входа в систему Apple, apple-developer-domain-association.txt файл должен быть общедоступным.

https://{YOUR_DOMAIN}/.well-known/apple-developer-domain-association.txt

Убедись

  1. Домены и домены, связанные с адресами электронной почты, должны соответствовать стандартам Sender Policy Framework (SPF).
  2. Должен быть доступен через https. http не работает.
  3. Никакого перенаправления даже на wwww. Указанный выше пример URL-адреса должен обслуживать файл apple-developer-domain-association.txt без каких-либо перенаправлений.

Подсказка: если вы обслуживаете apple-developer-domain-association.txt с www, вам необходимо зарегистрировать домен www.{YOUR_DOMAIN} white, настроив вход с помощью конфигурации Apple на сайте developer.apple.com. Для этого вы должны убедиться, что www.{YOUR_DOMAIN} соответствует требованиям SPF.

person Bilal    schedule 12.09.2019
comment
Вы также можете проверить your site is SPF Compliant с помощью следующих бесплатных инструментов: - dmarcanalyzer.com/spf/checker - mxtoolbox.com/spf.aspx - person Jonathan Sanchez; 10.10.2019
comment
@Bilal: После июня 2020 года проверка домена не требуется. Apple упростила этот процесс. - person SandyNegi.037; 06.07.2020

В продолжение и дополнение к @Bilal

A. Если домен не совместим с SPF, вы сразу заметите это при попытке добавить его на портале разработчика.

Б. Если вы не уверены, что ваш сайт перенаправлен, вы можете проверить это в http://www.redirect-checker.org/ или просто воспользуйтесь почтальоном и отключите опцию "Автоматически следовать перенаправлениям" в настройках запроса.

C. Apple требует, чтобы ваш сервер поддерживал протокол TLS 1.2 и один из перечисленных ниже наборов шифров:

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA256

Для меня проблема заключалась в перенаправлении www. Я понятия не имел, что наши серверы это делают, мои DevOps помогли мне решить эту проблему только для проверки.

Лучшее решение IMO - просто использовать свой собственный микросервис ретрансляции с уникальным выделенным доменом ...

person MTZ4    schedule 03.10.2019
comment
Все в порядке, кроме шифров. Но не знаю, как решить эту проблему. Используя Cloudflare / AWS / S3. Есть подсказка? - person Dpedrinha; 20.11.2019
comment
Обновление Cloudflare до платного плана (PRO $ 20 в месяц) помогло. Все платные планы включают в себя необходимые шифры. - person Dpedrinha; 21.11.2019

Чтобы расширить ответ @MTZ4 (кстати, за него проголосовали, потому что вы его прибили), вот процесс, который мне нужно было проработать, с некоторыми указаниями на кого-то еще, не так хорошо знакомого с работой с этими типами проблем.

В моем случае CloudFlare работал с сертификатами шифрования DNS и TLS, а также с Heroku, обслуживающим сайт.

Первый шаг - определить, обслуживает ли ваш провайдер TLS соответствующие шифры TLS, требуемые Apple.

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA256

Один из самых простых способов сделать это - использовать средство проверки сертификатов SSL labs. Просто введите свой корневой домен и запустите отчет (это займет несколько минут). В ответе на отчет найдите раздел Наборы шифров и убедитесь, что требуемые Apple шифры TLS доступны. На изображении ниже вы можете увидеть их оранжевым цветом и пометить их как слабые.

Вы можете игнорировать статус weak, потому что эти шифры не используют эфемерные ключи и не будут использоваться в TLS 1.3.

Результаты SSL Labs

Если вам нужен более полный тест, установите NMAP, а затем загрузите сценарий ssl-enum-ciphers. После установки NMAP и загрузки сценария выполните сценарий для своего домена:

nmap --script ssl-enum-ciphers -p 443 my-root-domain.com

Это дает набор результатов, который выглядит следующим образом:

Результаты NMAP

Еще раз найдите раздел TLSv1.2 и сравните свой список шифров со списком Apple. Если их нет (они отсутствуют на изображении выше), то в этом и заключается ваша проблема.

Так как исправить? Что ж, есть несколько вариантов, и все зависит от вашего поставщика TLS, который может быть вашим веб-хостом или может быть вашим хостом DNS в зависимости от вашей конфигурации.

Для нас мы используем CloudFlare в качестве нашего DNS-провайдера. CloudFlare также предоставляет шифры TLS. Поскольку CloudFlare не поддерживает шифры, требуемые Apple (изображение NMAP выше), и они не будут добавлять их из-за опасений по поводу безопасности, связанных с TLS 1.2 и переходом на TLS 1.3, нам пришлось отключить прокси-службу CloudFlare, чтобы разрешить сертификаты TLS, которые были предоставляемые нашей службой хостинга (Heroku).

Это оказалось несложно. Просто войдите в CloudFlare, перейдите к записям DNS и измените поведение маршрутизации трафика (щелкните оранжевое облако, чтобы оно стало серым для проверки, затем щелкните его еще раз после завершения проверки). Для получения дополнительной информации см. Страницу поддержки CloudFlare.

После этого Heroku обслуживал шифры TLS, в том числе необходимые Apple (как показано на изображении SSL Labs выше).

В конечном итоге тот, кто обслуживает ваши шифры TLS, должен включать в себя те, которые нужны Apple. Если приведенные выше тесты не показывают правильные шифры, проверьте свою службу DNS / TLS и своего хостинг-провайдера, чтобы узнать, поддерживают ли они их. Если они этого не сделают, возможно, вам придется переключиться.

Наконец, стоит также отметить, что на портале разработчиков Apple, когда вы нажимаете кнопку загрузить для файла проверки, не нажимайте его снова! Каждый раз, когда вы нажимаете кнопку, файл подтверждения изменяется, поскольку кажется, что он создается динамически.

Просто исправьте все проблемы с TLS, затем войдите на портал разработчиков Apple, загрузите файл, загрузите его на свой сервер и затем подтвердите.

В конечном итоге я работал с поддержкой Apple над некоторыми из них, и они рассматривают возможность добавления некоторой документации на страницу проверки, в которой указано, какие шифры необходимы, чтобы другие не столкнулись с теми же проблемами.

person Hooligancat    schedule 10.10.2019
comment
Если я отключу прокси-сервис CloudFlare, я больше не смогу даже получить доступ к своему сайту. Это на AWS / S3. Но я считаю, что моя проблема связана с шифрами, поскольку я использую Cloudflare. Но не знаю, как это решить. Какие-нибудь советы? - person Dpedrinha; 20.11.2019
comment
Обновление моего плана Cloudflare до PRO (20 долларов в месяц) помогло. Не нужно было менять ни одной конфигурации Cloudflare. Все еще использую гибкий. - person Dpedrinha; 21.11.2019

Я использую node js и express, и у меня возникла проблема, потому что я купил дешевый сертификат SSL от Sectigo. Вот что я сделал, чтобы это исправить.

  1. Проверьте свой сертификат SSL на наличие ошибок https://www.digicert.com/help/

  2. Пришлось установить промежуточный сертификат. Это решило проблему. Если вы выполните проверку в Safari, она не даст вам подтверждения, что домен проверен. Вместо этого выполните проверку в Chrome, и вы получите подтверждение.

  3. Проверьте заголовок HTTP, возвращаемый с вашего сервера. Если это 301, Apple не последует за ним. Вместо этого файл подтверждения должен быть возвращен через код состояния HTTP 200. Я имею в виду проверочный файл https://example.com/.well-known/apple-developer-domain-association.txt, где example.com - ваш домен.

person Lawrence Edmondson    schedule 12.11.2019

Если вы используете уровень бесплатного пользования Cloudflare, переход на план PRO (в настоящее время 20 долларов в месяц) поможет. Все их платные планы включают необходимые шифры.

И, конечно же, вы всегда можете отменить план после проверки и вернуться к бесплатному.

person Dpedrinha    schedule 21.11.2019