2
아래의 python 스크립트를 사용하여 SSL 요청을 수신하려고 시도하는 포트 수신기입니다. OpenSSL 모듈에서 실패합니다. 이 위치에는 SSL 요청 만 제공됩니다.Python에서 SSL 요청 플라스크 받기 문제
파이썬 스크립트 :
import logging
from OpenSSL import SSL
log = logging.getLogger()
log.setLevel(logging.DEBUG)
log_path = 'C:\\Temp\\Receive SSL Request Flask.log'
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh = logging.FileHandler(log_path)
fh.setFormatter(formatter)
log.addHandler(fh)
from flask import Flask, request, make_response, Response
app = Flask(__name__)
@app.route('/', defaults={'path':''})
@app.route('/<path:path>', methods=['GET', 'POST'])
def handle(path):
try:
log.info('Path: ' + path)
log.info(' ')
if path == 'Client':
request_stream = str(request.stream.read())
log.info('Request Stream *(Original): ' + request_stream)
log.info(' ')
return Response("{'msg':'Received SSL Request','success':True}")
except Exception as e:
log.debug('Exception: ' + str(e))
def main_process():
try:
context = SSL.Context(SSL.SSLv3_METHOD)
context.use_privatekey_file('C:\\Temp\\server.key')
context.use_certificate_file('C:\\Temp\\sever.crt')
app.run('0.0.0.0', debug=True, port=80, ssl_context=('C:\\Temp\\server.crt', 'C:\\Temp\\server.key'))
except KeyboardInterrupt:
log.info("^C Caught, Shutting Down...")
finally:
log.info("GoodBye!!!")
if __name__ == "__main__":
main_process()
스택 추적 :이 줄 어떤 도움을 크게 감상 할 수
Traceback (most recent call last):
File "C:\Temp\Receive SSL Request Flask.py", line 46, in <module>
main_process()
File "C:\Temp\Receive SSL Request Flask.py", line 37, in main_process
context.use_certificate_file('C:\\Temp\\sever.crt')
File "C:\Python34\lib\site-packages\OpenSSL\SSL.py", line 391, in use_certific
ate_file
_raise_current_error()
File "C:\Python34\lib\site-packages\OpenSSL\_util.py", line 22, in exception_f
rom_error_queue
raise exceptionType(errors)
OpenSSL.SSL.Error: [('system library', 'fopen', 'No such file or directory'), ('
BIO routines', 'FILE_CTRL', 'system lib'), ('SSL routines', 'SSL_CTX_use_certifi
cate_file', 'system lib')]
... "main_process"기능에서