Guten Tag! Lassen Sie uns mit diesem Thema fortfahren ().
Heute kommen wir zum praktischen Teil. Wir beginnen mit der Einrichtung Ihres eigenen Zertifizierungszentrums basierend auf einer vollständigen Open-Source-Kryptografiebibliothek namens OpenSSL. Dieser Algorithmus wurde unter Windows 7 getestet.
Nachdem wir OpenSSL installiert haben, können wir verschiedene kryptografische Operationen (zum Beispiel die Erstellung von Schlüsseln und Zertifikaten) über die Eingabeaufforderung ausführen.
Die Vorgehensweise ist wie folgt:
- Laden Sie das Installationspaket openssl-1.1.1g herunter.
Es gibt verschiedene Versionen von OpenSSL. In der Dokumentation zu Rutoken wurde erwähnt, dass Version 1.1.0 oder neuer benötigt wird. Ich habe die Version openssl-1.1.1g verwendet. Sie können OpenSSL von der offiziellen Website herunterladen, aber für eine einfachere Installation sollten Sie die Installationsdatei für Windows im Internet suchen. Ich habe dies für Sie erledigt:
Scrollen Sie auf der Seite nach unten und laden Sie den Win64 OpenSSL v1.1.1g EXE 63MB Installer herunter. - Installieren Sie openssl-1.1.1g auf Ihrem Computer.
Die Installation sollte standardmäßig in den Ordner C:Program Files erfolgen. Das Programm wird im Ordner OpenSSL-Win64 installiert. - Um OpenSSL nach Ihren Wünschen einzurichten, gibt es die Datei openssl.cfg. Diese Datei befindet sich im Pfad C:Program FilesOpenSSL-Win64bin, wenn Sie OpenSSL wie im vorherigen Punkt beschrieben installiert haben. Navigieren Sie zum Ordner, in dem sich openssl.cfg befindet, und öffnen Sie diese Datei mit einem Programm wie Notepad+.
- Sie haben wahrscheinlich erraten, dass die Konfiguration des Zertifizierungszentrums durch Änderungen an der openssl.cfg-Datei erfolgt, und Sie liegen absolut richtig. Dazu muss der Befehl [ ca ] konfiguriert werden. Im openssl.cfg-Datei können Sie den Anfang des Textes, in den wir Änderungen einfügen werden, unter [ ca ] finden.
- Jetzt werde ich ein Beispiel für die Konfiguration mit Beschreibung geben:
[ ca ] default_ca = CA_default [ CA_default ] dir = /Users/username/bin/openSSLca/demoCA certs = $dir/certs crl_dir = $dir/crl database = $dir/index.txt new_certs_dir = $dir/newcerts certificate = $dir/ca.crt serial = $dir/private/serial crlnumber = $dir/crlnumber crl = $dir/crl.pem private_key = $dir/private/ca.key x509_extensions = usr_certJetzt müssen wir das Verzeichnis demoCA und die Unterverzeichnisse erstellen, wie im obigen Beispiel gezeigt. Und dieses Verzeichnis am angegebenen Pfad einrichten, der im dir angegeben ist (bei mir /Users/username/bin/openSSLca/demoCA).
Es ist sehr wichtig, den dir richtig anzugeben – dies ist der Pfad zum Verzeichnis, in dem sich unser Zertifizierungszentrum befindet. Dieses Verzeichnis muss unbedingt im /Users-Verzeichnis liegen (also im Benutzerkonto eines beliebigen Nutzers). Wenn dieses Verzeichnis beispielsweise in C:Program Files liegt, erkennt das System die Datei mit den Einstellungen openssl.cfg nicht (zumindest war das bei mir so).
$dir – hier wird der Pfad eingesetzt, der in dir angegeben ist.
Ein wichtiger Punkt ist, eine leere Datei index.txt zu erstellen; ohne diese Datei werden die Befehle "openSSL ca ..." nicht funktionieren.
Es ist auch erforderlich, eine Datei namens serial, den privaten Schlüssel des Root-Zertifikats (ca.key) und das Root-Zertifikat (ca.crt) zu haben. Der Prozess zur Beschaffung dieser Dateien wird im Folgenden beschrieben.
- Wir verbinden die von Rutoken bereitgestellten Verschlüsselungsalgorithmen.
Diese Verbindung erfolgt in der Datei openssl.cfg.- Zunächst müssen die erforderlichen Algorithmen von Rutoken heruntergeladen werden. Dies sind die Dateien rtengine.dll, rtpkcs11ecp.dll.
Dafür laden wir das Rutoken SDK herunter: .Das Rutoken SDK ist alles, was für Entwickler verfügbar ist, die Rutoken ausprobieren möchten. Dort gibt es sowohl einzelne Beispiele für die Arbeit mit Rutoken in verschiedenen Programmiersprachen als auch einige Bibliotheken. Unsere Bibliotheken rtengine.dll und rtpkcs11ecp.dll befinden sich im Rutoken SDK gemäß den folgenden Pfaden:
sdk/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll
sdk/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dllEin sehr wichtiger Punkt. Die Bibliotheken rtengine.dll und rtpkcs11ecp.dll funktionieren nicht ohne den installierten Treiber für Rutoken. Außerdem muss Rutoken unbedingt an den Computer angeschlossen sein. (Informationen zur Installation alles Notwendigen für Rutoken finden Sie im vorherigen Teil des Artikels )
- Die Bibliotheken rtengine.dll und rtpkcs11ecp.dll können an beliebigen Orten im Benutzerkonto aufbewahrt werden.
- Wir geben die Pfade zu diesen Bibliotheken in openssl.cfg an. Dazu öffnen wir die Datei openssl.cfg und fügen am Anfang dieser Datei folgende Zeile ein:
openssl_conf = openssl_defAm Ende der Datei muss Folgendes hinzugefügt werden:
[ openssl_def ] engines = engine_section [ engine_section ] rtengine = gost_section [ gost_section ] dynamic_path = /Users/username/bin/sdk-rutoken/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll MODULE_PATH = /Users/username/bin/sdk-rutoken/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dll RAND_TOKEN = pkcs11:manufacturer=AktivCo.;model=RutokenECP default_algorithms = CIPHERS, DIGEST, PKEY, RANDdynamic_path – Sie müssen Ihren eigenen Pfad zur Bibliothek rtengine.dll angeben.
MODULE_PATH – Sie müssen Ihren eigenen Pfad zur Bibliothek rtpkcs11ecp.dll angeben.
- Zunächst müssen die erforderlichen Algorithmen von Rutoken heruntergeladen werden. Dies sind die Dateien rtengine.dll, rtpkcs11ecp.dll.
- Fügen Sie Umgebungsvariablen hinzu.
Es ist unbedingt erforderlich, eine Umgebungsvariable hinzuzufügen, die den Pfad zur Konfigurationsdatei openssl.cfg angibt. In meinem Fall wurde die Variable OPENSSL_CONF mit dem Pfad C:Program FilesOpenSSL-Win64binopenssl.cfg erstellt.
In die Umgebungsvariable path muss der Pfad zum Ordner angegeben werden, in dem sich openssl.exe befindet, in meinem Fall ist das: C:Program FilesOpenSSL-Win64bin.
- Jetzt können wir zu Punkt 5 zurückkehren und die fehlenden Dateien für das Verzeichnis demoCA erstellen.
- Die erste wichtige Datei, ohne die nichts funktionieren wird, ist serial. Dies ist eine dateilose Datei, deren Wert 01 sein muss. Diese Datei kann man selbst erstellen und 01 hineinschreiben. Man kann sie auch aus dem RUTOKEN SDK unter dem Pfad sdk/openssl/rtengine/samples/tool/demoCA/ herunterladen.
Im Verzeichnis demoCA befindet sich die Datei serial, die wir benötigen. - Wir erstellen den Root-Privatschlüssel.
Dafür verwenden wir den Befehl aus der openSSL-Bibliothek, den wir direkt in der Eingabeaufforderung ausführen müssen:openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out ca.key - Wir erstellen das Root-Zertifikat.
Dafür verwenden wir den folgenden Befehl aus der openSSL-Bibliothek:openssl req -utf8 -x509 -key ca.key -out ca.crtBitte beachten Sie, dass für die Erstellung des Root-Zertifikats der zuvor erstellte Root-Privatschlüssel erforderlich ist. Daher muss die Eingabeaufforderung im selben Verzeichnis gestartet werden.
Jetzt sind alle fehlenden Dateien für die vollständige Konfiguration des Verzeichnisses demoCA vorhanden. Platzieren Sie die erstellten Dateien in die Verzeichnisse, die in Punkt 5 angegeben sind.
- Die erste wichtige Datei, ohne die nichts funktionieren wird, ist serial. Dies ist eine dateilose Datei, deren Wert 01 sein muss. Diese Datei kann man selbst erstellen und 01 hineinschreiben. Man kann sie auch aus dem RUTOKEN SDK unter dem Pfad sdk/openssl/rtengine/samples/tool/demoCA/ herunterladen.
Wir nehmen an, dass unser Zertifizierungsstelle nach Abschluss aller 8 Punkte vollständig konfiguriert ist.
Im nächsten Abschnitt werde ich erläutern, wie wir mit der Zertifizierungsstelle arbeiten werden, um das zu erreichen, was in der .
Quelle: habr.com
