Как я имею дело с сертификатами с помощью ЗАВИХРЕНИЯ при попытке получить доступ к URL HTTPS?

Обновлен файл serializers.py, чтобы включить приведенный ниже код

class ReceiptLogSerializerClass(serializers.Serializer):
    #Fields
    def create(self, validated_data):
        raw_data_list = []
        many = isinstance(validated_data, list)
        if many:
            raw_data_list = validated_data
        else:
            raw_data_list.append(validated_data)
        result_id = 1
        for data_row in raw_data_list:
            new_command_run_entry = {
            'team_name': data_row.get('team_name'),
            'suite_name': data_row.get('suite_name'),
            'suite_run_id': data_row.get('suite_run_id'),
            'case_name': data_row.get('case_name'),
            'command_name': data_row.get('command_name'),
            'command_run_id': data_row.get('command_run_id'),
            'run_start': data_row.get('run_start'),
            'run_end': data_row.get('run_end'),
            'result': data_row.get('result'),
            'run_status': data_row.get('run_status')
        }
       response = TestCaseCommandRunSerializer.create(TestCaseCommandRunSerializer(),validated_data= new_command_run_entry)
       new_command_run_result_entry = {
            'suite_run_id': data_row.get('suite_run_id'),
            'command_run_id': data_row.get('command_run_id'),
            'rule_name': data_row.get('rule_name'),
            'result_id': result_id,
            'result': data_row.get('result'),  # PASS or FAIL
            'expected_values': data_row.get('expected_values'),
            'actual_values': data_row.get('actual_values'),
            'report_values': data_row.get('report_values'),
            'extended_values': data_row.get('extended_values'),
        }
        response = TestCaseCommandRunResultsSerializer.create(TestCaseCommandRunResultsSerializer(),validated_data= new_command_run_result_entry)
        logger.info(" new_command_run_result_entry response %s" % response)
        result_id += 1
    return validated_data

Я неправильно десериализовал данные и поэтому столкнулся с несколькими проблемами. возвращение validated_data исправило все ошибки, и теперь я могу публиковать () данные для нескольких моделей через один API.

Для публикации нескольких полезных нагрузок в одном вызове API добавлены строки ниже в ReceiptLogViewSet

    def get_serializer(self, *args, **kwargs):
        if "data" in kwargs:
            data = kwargs["data"]
        if isinstance(data, list):
            kwargs["many"] = True
    return super(ReceiptLogViewSet, self).get_serializer(*args, **kwargs)

Ссылка: Среда отдыха Django не может работать с несколькими объектами в наборе моделей

177
задан Josh 27 August 2010 в 22:00
поделиться

2 ответа

У меня есть та же проблема: я создаю альпийское основанное изображение докера, и когда я хочу завихриться к веб-сайту моей организации, эта ошибка появляется. Для решения его я должен получить сертификат CA своей компании, затем, я должен добавить его к сертификатам CA моего изображения.

Заставляют Использование сертификата

CA OpenSSL связывать сертификаты с веб-сайтом:

openssl s_client -showcerts -servername my.company.website.org -connect my.company.website.org:443

Это произведет что-то как:

CONNECTED(00000005)
depth=2 CN = UbisoftRootCA
verify error:num=19:self signed certificate in certificate chain
...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
... 
-----END CERTIFICATE-----
...

Получают последний сертификат (содержание между -----BEGIN CERTIFICATE----- и
-----END CERTIFICATE----- включенные разметки) и сохраняют его в файл (mycompanyRootCA.crt, например)

Сборка Ваше изображение

Затем когда Вы создадите свое изображение докера из альпийского, сделайте следующее:

FROM alpine
RUN apk add ca-certificates curl
COPY mycompanyRootCA.crt  /usr/local/share/ca-certificates/mycompanyRootCA.crt
RUN update-ca-certificates

Ваше изображение будет теперь работать правильно! \o/

0
ответ дан 23 November 2019 в 20:19
поделиться

Кажется, ваш curl указывает на несуществующий файл с сертификатами CA или аналогичным.

Первичную ссылку на сертификаты CA с curl см .: https://curl.haxx.se/docs/sslcerts.html

4
ответ дан 23 November 2019 в 20:19
поделиться