2017-07-29 2 views
3

Ich habe versucht, Python-Bibliothek "Anfragen" zu verwenden, um mit einer Website zu kommunizieren, die durch eine Smartcard geschützt ist. Es bedeutet eine starke Authentifizierung in SSL: Sie müssen ein clientseitiges Zertifikat (cert und privater Schlüssel) angeben.Wie eine TLS-Anfrage mit einer Smartcard mit Python zu machen?

Da ich eine Smartcard verwende, kann ich den privaten Schlüssel (nur das Modul) nicht lesen, der ein normaler Schutz ist. Ich kann die Smartcard mit der Python-Bibliothek PyKCS11 lesen: einmal das Zertifikat, den öffentlichen Schlüssel und den Modul des privaten Schlüssels.

Wie mischt man beide Anfragen und PyKCS11?
Wie wird eine SSL-Anfrage mit einem clientseitigen Zertifikat auf einer Smartcard erstellt?

EDIT 2017/08/04

Auf meinem Mac:

  • Gebräu installieren opensc
  • Gebräu installieren engine_pkcs11
  • openssl
    • Motordynamik openssl
    • Gebräu installieren -pre SO_PATH:/usr/local/Keller/engine_pkcs1 1/0.1.8/lib/Motoren/engine_pkcs11.so -pre ID: pkcs11 -pre LIST_ADD: 1 -pre LOAD -pre module_path:/usr/local/lib/(mein spezifischer pkcs11 lib) .dylib
      • geladen: (pkcs11) pkcs11 Motor
    • s_client -Motor pkcs11 -Taste '(slot) :(id)' -keyform Motor -cert 'pem.cer' -connect (host): 443 -state -debug
      • SSL-Handshake ok

Mein Problem ist jetzt, dass pyOpenSSL keine Funktion in der API zur Auswahl einer Maschine (wie pkcs11) haben. Also bin ich gestoppt. Ich kann Python nicht benutzen.

Antwort

Verwandte Themen