Неожиданная ошибка сертификата Pyssl

Я пишу небольшой прокси-сервер SSL и продолжаю получать ssl.SSLError: [SSL: SSLV3_ALERT_CERTIFICATE_UNKNOWN] sslv3 alert certificate unknown (_ssl.c:661) из клиента приложения для Android, но не из браузера. Я сделал набор ssl.CERT_NONE, Вот мой тестовый код:

SSLcontext = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
SSLcontext.load_cert_chain('server.crt', 'server.key')
SSLcontext.verify_mode = ssl.CERT_NONE
SSLcontext.check_hostname = False

s = socket.socket()
s.bind(('127.0.0.1', 443))
s.listen(5)

c = s.accept()[0]
c = SSLcontext.wrap_socket(c, server_side = True)
print c.recv(1024)

Это из-за закрепления сертификата в приложении для андроид или я что-то не так делаю?

1 ответ

Я установил ssl.CERT_NONE

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

SSLV3_ALERT_CERTIFICATE_UNKNOWN... из клиента приложения для Android, но не из браузера.

Неизвестно, какой сертификат вы используете здесь. Если это самоподписанный, вы, вероятно, добавили его один раз в качестве доверенного для браузера или добавили явное исключение - но вы не сделали этого для приложения Android. Если это сертификат, выданный общедоступным центром сертификации, вероятно, вы пропустили цепочку сертификатов. Браузеры настольных компьютеров часто решают эту проблему на стороне сервера, в то время как большинство других клиентов этого не делают.

Другие вопросы по тегам