Я работаю над сервисом, который будет обрабатывать идеи Alexa. Мне нужно проверить подпись каждого запроса, и я почти преуспел. Единственная часть, которая не работает, - это проверка цепочки сертификатов.
Из документации Я знаю, что:
Эта цепочка сертификатов состоит из: (1) подписания Amazon сертификат и (2) один или несколько дополнительных сертификатов, которые создают цепочку доверять сертификату центра сертификации (CA).
Мой код выглядит следующим образом:
certificates = pem.parse_file("chain.pem")
store = crypto.X509Store()
for cert in certificates[:-1]:
loaded_cert = crypto.load_certificate(crypto.FILETYPE_PEM,
cert.as_bytes())
store.add_cert(loaded_cert)
intermediate_cert = crypto.load_certificate(
crypto.FILETYPE_PEM,
certificates[-1].as_bytes()
)
# Create a certificate context
store_ctx = crypto.X509StoreContext(store, intermediate_cert)
# Verify the certificate
store_ctx.verify_certificate()
Я получаю следующую ошибку:
OpenSSL.crypto.X509StoreContextError: [20, 0, 'unable to get local issuer certificate']
Я не знаю, что я сделал неправильно, возможно, есть кто-то, кто уже реализовал это и может отказаться от намека.