openssl

Xartax

Well-Known Member
Hallo,

ich komme nicht drum herum, ich muss mir openSSL einrichten um mir selbst signierte Zertifikate zu erstellen. In FreeBSD ist das ja schon installiert und zu meiner Überraschung nicht mehr in /etc/ sondern in /usr/local/openssl. Ist dies das offizielle Verzeichnis für die Zertifikate? Ich hab es mal in /etc/ssl/openssl.cnf aud ein anderes Verzeichnis verweisen lassen. /usr/local/etc/ipsec.d seit dem bekomme ich nur noch fehler.

Nun, ich will am besten alles neu machen.
1. Wahl der Verzeichnisses
2. Sicherung der Zertifikate

Nun zu meiner Frage, wie geht man da am besten vor. welches Methode hat sich am besten bewährt?
 
Lass doch einfach alles bei den defaults.
Um ein Zertifikat zu erzeugen, brauchst du auch nur eine minimale Konfiguration:
Code:
RANDFILE               = /dev/urandom

[ req ]
prompt			= no
default_bits		= 2048
distinguished_name	= req_distinguished_name
req_extensions		= req_ext

[ req_distinguished_name ]
CN = foobar.example.com

[ req_ext ]
subjectAltName	= @alt_names

[ alt_names ]
DNS.1 = foobar.example.com
Diese legst du dir irgendwo hin (z.B. /etc/ssl/my-openssl.conf) und kannst dann ein CSR oder ein unbeglaubigtes Zertifikat erzeugen:

Code:
$ openssl genrsa 2048 > privkey.pem
$ openssl req -new -key privkey.pem -sha256 -reqexts req_ext -config /etc/ssl/my-openssl.conf > csr.pem
$ openssl req -new -x509 -extensions req_ext -sha256 -days 365 -key privkey.pem -config /etc/ssl/my-openssl.conf > crt.pem

Rob
 
Lass doch einfach alles bei den defaults.
Um ein Zertifikat zu erzeugen, brauchst du auch nur eine minimale Konfiguration:
Rob

Der Trick mit dem -config Argument, hat es gebracht. Ich hab dann die Beispiel openssl.cnf nach /usr/local/etc/ipsec.d/ssl.conf kopiert und entsprechend angepasst. Das hat es gebracht. Das Server Zertifikat ist nun erzeugt und signiert und alles ohne Fehler.

Stellt man Signierte Benutzer Zertifikate auf die selbe weise her wie ein server Zertifikat ?
 
https://de.wikipedia.org/wiki/X.509
https://en.wikipedia.org/wiki/X.509#Extensions_informing_a_specific_usage_of_a_certificate
  • KeyUsage: Gibt an, für welche Anwendung dieses Zertifikat ausgestellt wurde. Ein CA-Zertifikat muss hier bspw. keyCertSign und CRLsign eingetragen haben.

For example, { id-pkix 3 1 } indicates that the key may be used on the server end of a TLS or SSL connection; { id-pkix 3 4 } indicates that the key may be used to secure email.

Wenn du es grafisch magst: https://www.freshports.org/security/xca/
https://www.ejbca.org/ <- ist eher ein Java Monster das viel Mühe bei der Einrichtung verlangt
 
So, es funkt alles so weit,

danke euch allen die mir dabei geholfen haben

der Thread kann also geschlossen werden


:):):)
 
Hallo,

nun muss ich euch doch noch Rat fragen,

ich schaffe es nicht ein Benutzer Zertifikat zu erstellen. Im Grunde ist der Unterschied doch nur bei signieren des requests.

# openssl ca -in req.pem -notext -out certs/usercert.pem -config ssl.conf -extensions usr_cert

wird das Zertifikat in meinem smartphone immer unter den server Zertifikaten angezeigt. Auch Recherchen im Internet haben nicht geholfen :mad:


Hier meine ssl.conf:

Code:
[ usr_cert ]

# These extensions are added when 'ca' signs a request.

# This goes against PKIX guidelines but some CAs do it and some software
# requires this to avoid interpreting an end user certificate as a CA.

basicConstraints=CA:FALSE

# Here are some examples of the usage of nsCertType. If it is omitted
# the certificate can be used for anything *except* object signing.

# This is OK for an SSL server.
# nsCertType                    = server

# For an object signing certificate this would be used.
# nsCertType = objsign

# For normal client use this is typical
nsCertType = client, email

# and for everything including object signing:
# nsCertType = client, email, objsign

# This is typical in keyUsage for a client certificate.
# keyUsage = nonRepudiation, digitalSignature, keyEncipherment

# This will be displayed in Netscape's comment listbox.
nsComment                       = "OpenSSL Generated Certificate"

# PKIX recommendations harmless if included in all certificates.
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer

# This stuff is for subjectAltName and issuerAltname.
# Import the email address.
# subjectAltName=email:copy
# An alternative to produce certificates that aren't
# deprecated according to PKIX.
# subjectAltName=email:move

# Copy subject details
# issuerAltName=issuer:copy

#nsCaRevocationUrl              = http://www.domain.dom/ca-crl.pem
#nsBaseUrl
#nsRevocationUrl
#nsRenewalUrl
#nsCaPolicyUrl
#nsSslServerName

# This is required for TSA certificates.
# extendedKeyUsage = critical,timeStamping
 

möchte mich nochmal bedanken, das xca ist einfach klasse. :)

Jedoch hab ich immer noch das Problem, dass ein erstelltes Client Zertifikat in meinem Android HTC beim konfigurieren des IPSec VPN nicht in der Liste der Benutzer Zertifikate aufgelistet wird. Statt dessen wird es in der Liste der Server Zertifikate aufgelistet. :mad:

Irgend etwas mache ich falsch, aber was? Ich hab schon viele Beispiele aus dem Internet ausprobiert, aber immer landet das Client-Zertifikat in der Liste der Server-Zertifikate.

hm. :confused:

Grüße
 
Hi,

das Problem mit dem Android, dass das Client Zertifikat nicht aufgelistet wird konnte ich lösen.
Man muss das Client-Zertifikat als *.p12 speichern (inclussive CA), dann wird das CA und das Client-Zertifikat installiert und das Client-Zertifikat wird dann in der Liste der Clint-Zertifikate aufgelistet. :)

Ich möchte dieses und ein anderes Thema schließen.

Wie ändert man den Titel? so dass da "gelöst" erscheint?
 
Zurück
Oben