OpenSSL: клиентский сертификат не проходит проверку
Добрый вечер всем!
Требуется реализовать передачу данных серверу уведомлений Apple, который работает на
gateway.sandbox.push.apple.com:2195. Выдали мне сертификат с ключом, в файле Certificate_and_key.pem. Пытаюсь установить соединение:
Сертификаты сервера уведомлений проверяются нормально (все CA для этого в EntrustCA.pem), но дальше он выдает это:
140735074831484:error:14094416:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate unknown:s3_pkt.c:1193:SSL alert number 46
140735074831484:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:184:
Все что я нагуглил про alert 46, это "что-то не так с сертификатом клиента". Возможно как-нибудь получить более подробную информацию о такой ошибке?
Еще хотелось бы узнать, каким образом при удостоверении клиента во время SSL-хендшейка используется его закрытый ключ? Буду очень признателен, если кто-нибудь ткнет меня в инфу, где это рассказывается :)
Еще вывод следующей информации, если она может быть полезной. Про расширения X509v3 прочел только накануне ночью, пока не понял, могут ли они иметь к этому отношение, но на всякий случай:
$ openssl verify -CAfile AppleCA.pem Certificate_and_key.pem
. . .
error 34 at 0 depth lookup:unhandled critical extension
OK
$ openssl x509 -in Certificate_and_key.pem -text -noout -purpose
все расширения, которые обозначены "critical":
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Extended Key Usage: critical
Code Signing
X509v3 Key Usage: critical
Digital Signature
. . .
Certificate purposes:
SSL client : No
SSL client CA : No
SSL server : No
SSL server CA : No
Netscape SSL server : No
Netscape SSL server CA : No
S/MIME signing : No
S/MIME signing CA : No
S/MIME encryption : No
S/MIME encryption CA : No
CRL signing : No
CRL signing CA : No
Any Purpose : Yes
Any Purpose CA : Yes
OCSP helper : Yes
OCSP helper CA : No
Time Stamp signing : No
Time Stamp signing CA : No
Может, дело в "SSL client : No" ?
Буду очень благодарен за любую помощь!
Тимур.
Reply to: