pfx-0.1.2 von Steve HensonDas Programm ermöglicht es, vom Netscape Communicator/Navigator
(NSC) und MS-Internet-Explorer (MSIE) (jeweils ab Vers. 4.0x)
exportierte Zertifikate für OpenSSL lesbar zu machen, bzw. mit
OpenSSL erzeugte Zertifikate in den NSC und den MSIE zu importieren.
Außerdem ist es möglich, Benutzerzertifikate mit
Schlüssellängen bis zu 2048 Bit als .p12-Datei
in den NSC zu laden. Für NSC ab Vers. 4.04 und MSIE ab MSIE ab
Vers. 4.0x sollte statt pfx das
pkcs12-Programm (siehe PKCS12)
verwendet werden.
Folgende Änderungen sind im Makefile
vorzunehmen:
($(SSLDIR)=Installationsverzeichnis, $(SSLSRC)=Quellverzeichnis)
SSLINC=/usr/local/ssl/include:$(SSLDIR)/include, sonst Pfad auf
$(SSLSRC)/include setzen.SSLLIB=/usr/local/ssl/lib:SSLIB=$(SSLDIR)/lib setzen.CFLAGS=-Wall -O2 -I$(SSLINC) -g:CFLAGS=-fomit-frame-pointer -mv8 -Wall -O2 -I$(SSLINC)
cc -g -L$(SSLLIB) -o pfx $(OBJS)
-lcrypto:cc durch gcc ersetzen und die Option
-g entfernen.Schließlich ist das Programm mit
make 'CC=gcc'
zu übersetzen.
Als Installationsverzeichnis bietet sich $(SSLDIR)/bin
an:
cp $(PFX_SRC)/pfx $(SSLDIR)/binchmod 755 $(SSLDIR)/bin/pfx
pfxExport aus einen Browser
Um ein mittels der Netscape Export-Funktion aus dem Browser
exportiertes Benutzer-Zertifikat cert.p12
für OpenSSL zugänglich zu machen, ist folgender Befehl
notwendig:
pfx -incert.p12 -outcert.pem [-des3 | -des | -idea]
Es wird nach einem Import-Passwort gefragt; es ist das Passwort, das
beim Zertifikat-Export mit Netscape angegeben werden mußte und
mit dem cert.p12 verschlüsselt wurde. Die
Optionen -des3, -des, bzw. -idea
geben an, ob und wie das exportierte Zertifikat verschlüsselt
werden soll.
Import in einen Browser
Um ein mit OpenSSL erstelltes Zertifikat in den NSC zu importieren:
pfx -export -nameListbox-Name-outcert.p12 -incert.pem
Listbox-Name ist die Bezeichnung, unter der das Zertifikat nach dem Import im Browser in einer Security-Rubrik geführt wird.
Nach dem Schlüssel-Passwort wird ein weiteres Passwort,
erfragt; es ist das Passwort um die
cert.p12-Datei zu verschlüsseln. Das so
vorbereitete Zertifikat kann über NSC Import-Funktion importiert
werden. Der Browser erwartet als zweites Passwort (das erste diente zum
Freigeben der NSC Zertifikat-Datenbank) das Passwort, mit dem die
.p12-Datei verschlüsselt wurde. Die Zertifikate
werden nur in den NSC-Bereich "Security/Yours", also als "eigene
E-Mail-Zertifikate", gebracht.
Mit folgendem Befehl kann indirekt auch ein CA-Zertifikat in den Netscape-Browser gelsden werden:
pfx -export -nameListbox-Name-inusercert.pem -inkeyuserkey.pem -outmycert.p12 -certfileCAcert.pem
Das CA-Zertifikat wird an ein
vorher erzeugtes Benutzer-Zertifikat usercert.pem
gebunden. Anschließend kann das Benutzer-Zertifikat importiert
werden und damit gleichzeitig das "angehängte" CA-Zertifikat. Das
Benutzer-Zertifikat kommt in die Rubrik "Security/Yours" und das
CA-Zertifikat nach "Security/Signers". Für das CA-Zertifikat
muß dann mittels des "Edit"-Buttons im NSC noch mitgeteilt
werden, wofür das CA-Zertifikat gültig sein soll. Erst dann
verläuft eine Überprüfung des Benutzer-Zertifikats
erfolgreich. Auf diese Weise können aber nur Zertifikate mit
gesetzten "CA-Bit" importiert werden, also wenn nsCertType
auf sslCA, emailCA, objCA bzw.
deren Kombinationen gesetzt ist.
Weiter ist es möglich, Zertifikat-Ketten in den Browser zu importieren. Voraussetzung ist, daß alle n-1 Zertifikate das "CA-Bit" gesetzt haben. Mit folgenden Befehl werden an ein Zertifikat alle in der Zertifikat-Hierarchie darüber liegenden Zertifikate, einschließlich dem Root-CA-Zertifikat, an das Zertifikat gebunden:
pfx -export -nameListbox-Name-inusercert.pem -inkeyuserkey.pem -outusercert.p12 -chain
Das Kommando funktioniert nur erfolgreich, wenn die CA-Zertifikate
nach $(SSLDIR)/certs kopiert und deren Hash-Werte gebildet
worden sind (s. die Anmerkung am Ende des Abschnitts über die Hash-Werte). Die mit
einem Zertifikat verbundenen CA-Zertifikate werden alle in den Browser
gebracht und sind über die Browser-Rubrik "Signers"
zugänglich. Eine erfolgreiche Überprüfung der
Zertifikate setzt voraus, daß zumindest für das
Root-CA-Zertifikat der "CA-Typ" (Server-CA, Client-CA usw.) mit Hilfe
des Browsers eingestellt wird (s.o.,
Edit-Button).
Eine Liste aller Optionen findet sich im Anhang PFX.
pkcs12-054 von Steve HensonDas Programm arbeitet nur mit NSC ab Vers. 4.04 und MSIE ab Vers.
4.0 zusammen. Die Anwendung erfolgt analog der oben für
pfx geschilderten Arbeitsweise. Mit dieser Applikation ist es -
wie mit pfx für die "älteren" Browser -
möglich, aus einem Browser exportierte Zertifikate für
OpenSSL zugänglich zu machen, sowie mit OpenSSL erzeugte
Zertifikate in den Browser zu bringen. Das schließt den Import
von CA-Zertifikaten über Zertifikatketten mit ein.
Zur Übersetzung muß nach dem Auspacken der
Programm-Quellen in das Verzeichnis src gewechselt werden.
Folgende Änderungen sind dort im Makefile vorzunehmen:
($(SSLDIR)=Installationsverzeichnis, $(SSLSRC)=Quellverzeichnis)
SSLINC=/usr/local/ssl/include:$(SSLDIR)/include, sonst Pfad auf
$(SSLSRC)/include setzen.SSLLIB=/usr/local/ssl/lib:SSLIB=$(SSLDIR)/lib setzen.SSLBIN=/usr/local/ssl/bin:
SSLBIN=$(SSLDIR)/binTOP=/home/steve/ossl:
TOP=$(SSLSRC)Schließlich ist das Programm mit
zu übersetzen. Die Übersetzung erfolgt ohne Warnungen.make clean ; make errors ; make 'CC=gcc'
Als Installationsverzeichnis bietet sich $(SSLDIR) mit
den entsprechenden Unterverzeichnissen an:
cp $(PKCS12_SRC)/src/pkcs12 $(SSLDIR)/binchmod 755 $(SSLDIR)/bin/pkcs12cp $(PKCS12_SRC)/src/libpkcs12.a $(SSLDIR)/libchmod 744 $(SSLDIR)/lib/libpkcs12.acp $(PKCS12_SRC)/pkcs12.h $(SSLDIR)/includechmod 744 $(SSLDIR)/include/pkcs12.h
pkcs12Die Benutzung erfolgt ähnlich dem beim Programm
pfx geschilderten Verfahren (siehe
PFX).
Export aus dem Browser
Um beispielsweise ein mittels der Netscape Export-Funktion aus dem
Browser exportiertes Zertifikat cert.p12 für
OpenSSL zugänglich zu machen, ist folgender Befehl notwendig:
pkcs12 -incert.p12 -outcert.pem [-des3 | -des | -idea]
Es wird nach einem Import-Passwort gefragt; es ist das Passwort, das
beim Zertifikat-Export mit Netscape angegeben werden mußte und
mit dem cert.p12 verschlüsselt wurde. Die
Optionen -des3, -des, bzw. -idea
geben an, ob und wie das Zertifikat und der Schlüssel, welche sich
nach Ausführung des obigen Kommandos in
cert.p12 befinden, verschlüsselt werden
sollen.
Import in den Browser
Um ein Zertifikat in ein vom Browser importierbares Format zu wandeln:
pkcs12 -export -nameListbox-Name-incert.pem -inkeykey.pem -outfile.p12
Listbox-Name ist der Bezeichner, unter dem das importierte Zertifikat später in einer der Security-Rubriken des Browsers geführt werden soll.
Um eine Zertifikat-Kette in ein vom Browser importierbares Format zu wandeln:
pkcs12 -chain -export -nameListbox-Name-incert.pem -inkeykey.pem -outfile.p12
Eine Übersicht über alle Optionen findet sich in Anhang PKCS12.
ca-fix-0.3 von Steve HensonDie von dem Programm CA-Fix bereitgestellte Funktionalität ist in OpenSSL-0.9.2b vollständig integriert. Somit wird CA-Fix nicht mehr benötigt.