Подключение к Нептуну с помощью aiogremlin

Я пытаюсь подключиться к AWS Neptune с помощью aiogremlin, но продолжаю получать ошибки сертификата SSL. Я пробовал использовать 3 разных сертификата, загруженных из Amazon Trust Repository, но ни один из них не работает. С участием AmazonRootCA1.pem а также SFSRootCAG2.pem Я продолжаю получать File Not Found error и с SFSRootCAG2.cer я получил ssl_context.load_cert_chain(ssl.SSLError: [SSL] PEM lib (_ssl.c:4046).

Вот фрагмент, который я использую для взаимодействия с Нептуном.

      import asyncio
from aiogremlin import DriverRemoteConnection, Graph
from .constants import NEPTUNE_ENDPOINT, CERT_DIR


async def go():
    remote_connection = await DriverRemoteConnection.open(f'https://{NEPTUNE_ENDPOINT}:8182/gremlin', 'g',
                                                          ssl_certfile=CERT_DIR+'SFSRootCAG2.cer')
    g = Graph().traversal().withRemote(remote_connection)
    vertices = await g.V().toList()
    await remote_connection.close()
    return vertices

print(asyncio.get_event_loop().run_until_complete(go()))

Возникли проблемы с определением, использую ли я неправильный файл сертификата или делаю что-то еще не так.

1 ответ

Я получил ту же самую ошибку (вплоть до строки 4046 в ssl.c), когда преобразовал хранилище ключей в файл pem без раздела сертификата.

Я снова преобразовал его без флага «-nocerts», и я получил оба раздела в файле следующим образом:

      Bag Attributes
    friendlyName: mykey
    localKeyID: ...
Key Attributes: <No Attributes>
-----BEGIN PRIVATE KEY-----
... [magic key details] ...
-----END PRIVATE KEY-----
Bag Attributes
    friendlyName: mykey
    localKeyID: ...
subject=C = NO, O = ..., CN = Server Administrator

issuer=C = NO, O = ..., CN = Server Administrator

-----BEGIN CERTIFICATE-----
... [magic key details] ...
-----END CERTIFICATE-----

Я также создал новый сертификат, подобный этому, который работал без проблем:

      # openssl req -new -x509 -days 365 -nodes -out cert.pem -keyout cert.pem
Другие вопросы по тегам