Django Запрос с сертификатом SSL - PullRequest
0 голосов
/ 13 февраля 2020

В представлении django мне необходимо отправить запрос в другой API. API требует SSL-сертификат, который будет прикреплен к запросу. У меня есть файл ssl .crt.

Как я могу это реализовать?

Я пытался использовать эту реализацию здесь: https://gist.github.com/erikbern/756b1d8df2d1487497d29b90e81f8068

Но я получал бы эту ошибку, даже когда я запускал pycharm от имени администратора:

Traceback (most recent call last):
  File "C:\Applications\venv\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
    response = get_response(request)
  File "C:\Applications\venv\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "C:\Applications\venv\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "", line 350, in pge_auth_v1_redirect_view
    with pfx_to_pem(pem_file_path, '') as cert:
  File "c:\program files\python37\Lib\contextlib.py", line 112, in __enter__
    return next(self.gen)
  File "", line 271, in pfx_to_pem
    f_pem = open(t_pem.name, 'wb')
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\fpier\\AppData\\Local\\Temp\\tmpg7i7qtun.pem'

1 Ответ

0 голосов
/ 02 мая 2020

Решение, которое я нашел, состояло в том, чтобы создать файл pem, конкатонируя публичные c и личные файлы.

        req = requests.post(
            url,
            params=params,
            headers=headers,
            auth=client_auth,
            verify=True,
            cert=self._pem_file_path
        )
...