Я следую следующему руководству, чтобы добавить сертификат SSL к API, размещенному на AWS API Gateway: aws -docs . Я могу успешно выполнить процедуру создания сертификата клиента с помощью консоли шлюза API, в результате чего получится следующий сертификат:
![API Gateway Client Certificate](https://i.stack.imgur.com/GBtz4.png)
Я также могу Настройте API для использования сертификатов SSL, следуя подсказке. Проблема возникает в разделе «Настройка внутреннего HTTPS-сервера для проверки сертификата клиента». В инструкциях указано, что «вы должны получить закрытый ключ в формате PEM и сертификат на стороне сервера». Нажатие «копировать» возвращает сертификат, но я никогда не получал закрытый ключ при создании сертификата, и я не вижу никакой возможности получить закрытый ключ. Как мне go получить закрытый ключ в кодировке PEM для сертификата, созданного с помощью шлюза API?
Цель всего этого - создать http-запрос с использованием библиотеки python requests
. Без сертификата при отправке запроса я получаю сообщение об ошибке, которое выглядит примерно так:
(Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)'))
Вы можете указать сертификат и закрытый ключ с такими запросами, как geeksforgeeks :
result = requests.post(url, cert=('/path/client.cert', '/path/client.key')
Однако, как указано выше, очевидного способа получить закрытый ключ, закодированный в PEM, не существует. Установка флага verify=False
для request
неприемлема для этого приложения из соображений безопасности. Таким образом, для этого приложения приемлемым решением будет либо способ получить закрытый ключ в формате PEM, либо создать python request
другим способом, используя только файл .cert, полученный с помощью кнопки «копировать».