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)/bin
chmod 755 $(SSLDIR)/bin/pfx
pfx
Export 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 -in
cert.p12 -out
cert.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 -name
Listbox-Name-out
cert.p12 -in
cert.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 -name
Listbox-Name-in
usercert.pem -inkey
userkey.pem -out
mycert.p12 -certfile
CAcert.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 -name
Listbox-Name-in
usercert.pem -inkey
userkey.pem -out
usercert.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)/bin
TOP=/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)/bin
chmod 755 $(SSLDIR)/bin/pkcs12
cp $(PKCS12_SRC)/src/libpkcs12.a $(SSLDIR)/lib
chmod 744 $(SSLDIR)/lib/libpkcs12.a
cp $(PKCS12_SRC)/pkcs12.h $(SSLDIR)/include
chmod 744 $(SSLDIR)/include/pkcs12.h
pkcs12
Die 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 -in
cert.p12 -out
cert.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 -name
Listbox-Name-in
cert.pem -inkey
key.pem -out
file.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 -name
Listbox-Name-in
cert.pem -inkey
key.pem -out
file.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.