Verifique se o URI do endpoint da API está exatamente , conforme mostrado no servidor do Google Landscape. Normalmente, terminará com /api/
(barra final incluída). E, claro, que as chaves de acesso estão corretas.
alguém pode me ajudar com alguns problemas de certificado ..? Estou usando o Landscape e tentando usar a API python, mas obtenho uma incompatibilidade de CA, mas eu baixei o .pem e apontei o script para o local do .pem ... recebo um 403 e erro : Mensagem: {"message": "A assinatura do pedido que calculamos não corresponde à assinatura que você forneceu. Verifique seu método de chave e assinatura.", "Error": "SignatureDoesNotMatch"}
Tentando fazer alguns testes em uma LAN sem uma autoridade de certificação, o script está sendo executado no servidor em que o Landscape está sendo executado. Aqui está o conteúdo do meu script python, obviamente com informações críticas alteradas.
#!/usr/bin/python
import os, json, sys
from landscape_api.base import API, HTTPError
# change these accordingly
uri = "https://placeholder.bla"
key = "VQ6PP8Vxxxxxx971NHRY"
secret = "RZ+IOK0s8+UQkRWfsxxxxxxxxLhSFKDwIf5Df"
ca = "~/api/key.pem"
api = API(uri, key, secret, ca)
try:
computers = api.get_computers(query="alert:security-upgrades")
except HTTPError, e:
print ("\nGot server error:\n"
"Code: %d\n"
"Message: %s\n") % (e.code, e.message)
sys.exit(1)
if len(computers) == 0:
print "No computers have pending security upgrades."
else:
for computer in computers:
print "Id:", computer["id"]
print "Title:", computer["title"]
print "Hostname:", computer["hostname"]
print "Last ping:", computer["last_ping_time"]
print "Memory:", computer["total_memory"]
if computer["reboot_required_flag"]:
print "Needs to reboot!"
print
Verifique se o URI do endpoint da API está exatamente , conforme mostrado no servidor do Google Landscape. Normalmente, terminará com /api/
(barra final incluída). E, claro, que as chaves de acesso estão corretas.
Você está realmente usando ~/api/key.pem
? Pode ser necessário lançar um os.path.expanduser
em torno dele ou fornecer o caminho completo.