Предупреждение SSL/TLS при подключении к gateway.sandbox.push.apple

Вопрос: При запуске кода openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert ECert.pem -key EKey.pem Я получаю ошибку 5155:error:14094416:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate unknown:/SourceCache/OpenSSL098/OpenSSL098-44/src/ssl/s3_pkt.c:1102:SSL alert number 46 5155:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:/SourceCache/OpenSSL098/OpenSSL098-44/src/ssl/s23_lib.c:182: Я попытался начать и получить сертификат, и я попытался снова получить секретный ключ, но если кто-нибудь может дать мне совет, как исправить это, было бы здорово. Ответ №1

Вопрос:

При запуске кода

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert ECert.pem -key EKey.pem

Я получаю ошибку

5155:error:14094416:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate unknown:/SourceCache/OpenSSL098/OpenSSL098-44/src/ssl/s3_pkt.c:1102:SSL alert number 46 5155:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:/SourceCache/OpenSSL098/OpenSSL098-44/src/ssl/s23_lib.c:182:

Я попытался начать и получить сертификат, и я попытался снова получить секретный ключ, но если кто-нибудь может дать мне совет, как исправить это, было бы здорово.

Ответ №1

Alert 46 is certificate_unknown (из RFC 5246, раздел 7.2). Это значит:

Некоторая другая (неуказанная) проблема возникла при обработке сертификата, что делает его неприемлемым.

Учетные данные/сертификат клиента, которые вы предоставляете, отклоняются Apple.

Также см. ” Проверка взаимной аутентификации SSL” на странице “Обмен файлами безопасности”.

как исправить это было бы здорово.

Похоже, вы создали свои собственные учетные данные. Вы должны предоставить учетные данные, принятые Apple.

Я думаю, что одна из целей программ разработчика Apple – предоставить вам приемлемую идентификацию (другие включают повторяющиеся потоки доходов). В рамках программы разработчика Apple проверит запрос на подпись и выдаст вам сертификат на эти вещи.

В случае, если вам интересно, я не думаю, что вы можете избежать программы разработчика Apple в этом случае. (И для чего он стоит, я вообще не согласен с требованием программы разработчика и поручаю мне 200 долларов в год для использования своих устройств iOS и MacBook).

Ответ №2

Вы можете добавить -verbose.

В первую очередь это говорит о том, что корневой ЦС, который подписал ЦС, который подписал ЦС, который подписал gateway.sandbox.push.apple.com, не входит в пакет openSSL по умолчанию.

В приведенном выше случае это сертификат для:

i:/O=Entrust.net/OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/OU=(c) 1999 Entrust.net Limited/CN=Entrust.net Certification Authority (2048)

Который вы можете получить из и можете добавить к команде выше -CAfile *.

Как только вы это сделаете, вы должны иметь возможность установить правильное соединение и получить хотя бы ОК на сертификате сервера:

Verify return code: 0 (ok)

Dw.

*: вы можете также обмануть – просто добавьте -showcert; который дает вам сертификат сервера; вырезать и вставить это в server-cert.pem и добавить ‘-CAfile server-cert.pem’, а openssl не будет проверять его дальше по дереву.

Оцените статью
Добавить комментарий