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