보안 websocket을 통해 서버의 기능을 테스트하려고합니다. 정기적 인 연결을 통해 연결하는 클라이언트를 작성했지만 WSS를 통해 연결할 수 없습니다. 여기 WSS를 통해 연결하는 나의 기능은 다음과 같습니다python을 사용하여 보안 websocket에 연결
def connectWSS(self, certCAFile, certFile, keyFile):
self.ws = websocket.WebSocketApp(self._wss_url, on_message =
self.on_message, on_error = self.on_error, on_close = self.on_close)
self.ws.on_open = self.on_open
socketOptions = {"ca_certs": certCAFile, "keyfile": keyFile,
"certfile": certFile}
def run(*args):
print "Starting..."
logger = logging.getLogger(__name__)
logger.info("Connecting to websocket")
self.ws.run_forever(sslopt=socketOptions)
thread.start_new_thread(run,())
나는 그냥 sslopt 분야에
"cert_reqs": ssl.CERT_NONE
을 추가 할 수 있다는 걸하지만 서버가 있는지 확인하기 위해 인증서를 사용하여 WSS를 통해 연결하려는 실제로 그들을 확인합니다. 나는 모두 서버에 대한 자체 서명 된 인증서를 사용하고
EOF occurred in violation of protocol (_ssl.c:590)
: 나는에 실행하고 문제는 내가 내 암호 나는 다음과 같은 오류가 점점 오전에 들어갔을 때이
Enter PEM pass phrase:
나를 메시지를 표시 할 때입니다 클라이언트, 그래서 나는 openssl을 사용하여 직접 인증서를 생성했습니다. 인증서에 문제가 있습니까? 아니면 코드에 누락 된 부분이 있습니까? 나는 누군가가 올바른 방향으로 나를 가리킬 수 있다면,이 보안 websocket 물건에 아주 새로운입니다, 그것은 크게 감사하겠습니다.
그러나 서버 측에서 클라이언트 쪽에서 인증서를 요청하는 옵션이 있으면 어떻게해야합니까? 그렇다면 어떻게 인증서를 제공 할 수 있습니까? 위의 코드에서 ssl 옵션으로 인증서/키/CACert 파일을 제공하고 있습니다. 잘못된 경로를 입력하면 불만을 토로하기 때문에 효과가있는 것 같습니다. 'socketOptions = { "ca_certs": "invalid.path", "keyfile": "invalid.path", "certfile": "invalid" .path "}' – Ted
네, 맞습니다. 여기를보세요 http://stackoverflow.com/questions/11884704/how-to-set-find-the-ca-certs-argument-in-python-ssl-wrap-socket. 따라서 자체 서명 인증서조차도 신뢰할 수 있습니다. – norekhov