Autentikacija su sertifikatu

C
  • 7 Bal '11

Sveiki,

susidūriau su bėda, darant http call'ą reikia autentikuotis su sertifikatu, tai nebūtų bėda, jei reiktų tik vieną kartą tai padaryti, bet bėda, kad man reikia apie tūkstantį kartų daryti užklausą ir kiekvieną kartą prašo sertifikato slaptažodžio. Ar galima kaip nors sukurti objektą, kuris paprašytų slaptažodžio vieną kartą ir bendravimui su webu naudotų tą objektą, o ne prašinėtų kiekvieną kartą įvesti slaptažodį?

Pavyzdys kaip apskritai su sertifikatu autentikuotis yra čia:

http://code.activestate.com/recipes/117 ... ver-https/

Kiek žinau, yra galimybė eksportinti sertifikatą be slaptažodžio, bet tikiuosi bus galima apseit be šio žingsnio, labai jau nesaugiai tai atrodo.

C
  • 7 Bal '11

Truputį daugiau pasiknisęs radau, kad galima naudojant httplib ir tada pačiam iškviesti connect() metodą, tuo momentu paprašys slaptažodžio, ir gausi connection objektą, per kurį toliau galėsi requestint/responsint jau be slaptažodžio.

C
  • 7 Bal '11

Pasirodo šis variantas po šimto užklausų vistiek prašo slaptažodžio, tik nesuprantu, ar čia sertifikato bajeriai, ar serverio nustatymai... ar python kažkas saugumo sumetimais... na bet kas šimtą užklausų jau geriau nei kiekvieną kartą

S
  • 7 Bal '11

Veikia be problemų ir be slaptažodžių.

Pirmiausia susigeneravau raktą:

openssl req -x509 -nodes -days 365 \
        -newkey rsa:1024 -keyout mycert.pem \
        -out mycert.pem

Tada susikūriau failą https.py su tokiu turiniu:

import httplib

CERTFILE = 'mycert.pem'
HOSTNAME = 'launchpad.net'

conn = httplib.HTTPSConnection(HOSTNAME,
                               key_file=CERTFILE,
                               cert_file=CERTFILE)
conn.putrequest('GET', '/')
conn.endheaders()
response = conn.getresponse()
print(response.read())

Galiausiai tą failą paleidau:

python https.py

Ir gavau launchpad.net svetainės html kodą. Kadangi mano sertifikatas neapsaugotas slaptažodžiu, tai jokių slaptažodžių niekas ir neprašė.

C
  • 11 Bal '11

Ačiū už atsakymą, bet man reikia, kai sertifikatas slaptažodžiu apsaugotas... Šiaip jau baigiu tas užklausas vykdyt, tik būtų įdomu, jei kada ateity prireiks, kaip išvengt to slaptažodžio įvedimo kas šimtą užklausų..