eigenes SSL Zertifikat mit openSSL erstellen

fehlt wasgeht sogutsehr guthat geholfen (1 votes, average: 5,00 out of 5)
Loading ... Loading ...
Werbung




Hier wird beschrieben, wie man sich ein X.509-Zertifikat für den Betrieb eines Webservers mit SSL Verschlüsselung erstellt. Benötigt wird hierzu openssl. Das Erstellen des Schlüssels wird in 2 Schritten erklärt. Zunächst muss ein Schlüsselpaar erstellt werden, ein privater und ein öffentlicher Schlüssel. Diese Schlüssel werden danach benötigt, um die Webserver-Schlüssel zu erstellen.

Allgemeines Schlüsselpaar – CA-Zertifikat
Zunächst muss für CA selbst ein Schlüssel generiert werden. Dazu geben Sie folgenden Befehl ein:

openssl genrsa -out ca.key 1024

Hier wird die Datei ca.key erstellt. Diese Datei ist allerdings unverschlüsselt. Sollte der Schlüssel in einer produktiven Umgebung erstellt werden, wäre es nötig, diese Datei schon zu verschlüssel. Dies geschieht mit dem Befehl:

openssl genrsa -des3 -out ca.key 1024

Hierbei wird der Schlüssel mittels eines Passwortes verschlüsselt, nach dem man gefragt wird.

Nun kann man sich anhand einer eigenen Konfigurationsdatei eine eigene Key-Datei erstellen. Andererseits kann man auch die allgemein gültige Datei openssl.conf Hier eine Beispieldatei mit dem Namen ca.config:

[ req ]
default_bits = 1024
distinguished_name = req_DN
string_mask = nombstr
[ req_DN ]
countryName = "1. Country Name (2 letter code)"
countryName_default = DE
countryName_min = 2
countryName_max = 2
stateOrProvinceName = "2. State or Province Name (full name) "
#stateOrProvinceName_default =
localityName = "3. Locality Name (eg, city) "
localityName_default = Chemnitz
0.organizationName = "4. Organization Name (eg, company) "
0.organizationName_default = Mustermann
organizationalUnitName = "5. Organizational Unit Name (eg, section) "
organizationalUnitName_default = Certificate Authority
commonName = "6. Common Name (eg, CA name) "
commonName_max = 64
commonName_default = Mustermann CA
emailAddress = "7. Email Address (eg, name@FQDN)"
emailAddress_max = 40
emailAddress_default = ca@mustermann.de

Mit folgendem Befehl wird unter hinzuziehen der oben erstellten Konfigurationsdatei das Key-Zertifikat erstellt:

openssl req -config ca.config -new -key ca.key -out ca.csr

Falls die erste Datei mit einem Passwort verschlüsselt wurde, so wird dieses abgefragt.

Die endgültigen Zertifikate benötigt noch ein paar Erweiterungen, die mit folgender Datei festgelegt werden:

extensions = x509v3
[ x509v3 ]
basicConstraints = CA:true,pathlen:0
crlDistributionPoints = URI:http://www.mustermann.de/ca/mustermann.crl
nsCertType = sslCA,emailCA,objCA
nsCaPolicyUrl = "http://www.mustermann.de/ca/policy.htm"
nsCaRevocationUrl = "http://www.mustermann.de/ca/heimpold.crl"
nsComment = "Mustermann CA"

Nun werden die endgültigen Zertifikate erstellt, aus dem alle weiteren Zertifikate generiert werden können:

openssl x509 -days 1095 -extfile ca.ext -signkey ca.key -in ca.csr -req -out ca.crt

Es existieren nun die 2 wichtigen Dateien ca.key und ca.crt die beiden Stammzertifikate. benutzen lassen.

[sb]Das Webserver-Zertifikat erstellen
Auch hier benötigen wir wieder ein Schlüsselpaar. Das Server-Zertifikat wird nicht ander erstellt:

openssl genrsa -out server.key 1024

Auch hier werden nun weitere Konfigurationselemente zu Grunde gelegt, welche in der Datei server.config abgelegt werden:

[ req ]
default_bits = 1024
distinguished_name = req_DN
string_mask = nombstr
[ req_DN ]
countryName = "1. Country Name (2 letter code)"
countryName_default = DE
countryName_min = 2
countryName_max = 2
stateOrProvinceName = "2. State or Province Name (full name) "
#stateOrProvinceName_default =
localityName = "3. Locality Name (eg, city) "
localityName_default = Chemnitz
0.organizationName = "4. Organization Name (eg, company) "
0.organizationName_default = Mustermann
organizationalUnitName = "5. Organizational Unit Name (eg, section) "
organizationalUnitName_default = Server
commonName = "6. Common Name (eg, CA name) "
commonName_max = 64
commonName_default = www.mustermann.de
emailAddress = "7. Email Address (eg, name@FQDN)"
emailAddress_max = 40
emailAddress_default = webmaster@mustermann.de

und die dazugehörigen Erweiterungen server.ext:

extensions = x509v3
[ x509v3 ]
nsCertType = server
keyUsage = digitalSignature,nonRepudiation,keyEncipherment
extendedKeyUsage = msSGC,nsSGC,serverAuth

Normalerweise werden Zertifikate mittels einer fortlaufenden Nummer erstellt.
Mit dem Befehl:

echo -ne '01' > ca.serial

erstellen wir die Seriennummer des Zertifikates.

Folgende Befehle erstellen nun die Server-Schlüssel:

openssl req -config server.config -new -key server.key -out server.csr
openssl x509 -days 730 -extfile server.ext -CA ca.crt -CAkey ca.key -CAserial ca.serial -in server.csr -req -out server.crt

Hier existieren nun die Server-Zertifikate: server.crt und server.key welche in die entsprechenden Verzeichnisse des Webservers kopiert werden können und in den Konfigurationsdateien angemeldet werden können.

bisherige Suchbegriffe:

  • openssl zertifikat erstellen
  • eigenes ssl zertifikat erstellen
  • eigenes ssl zertifikat
  • eigene stammzertifikate erstellen windows openssl


Werbung


Eine Kommentar zu: eigenes SSL Zertifikat mit openSSL erstellen

  1. [...] Wie schon bereits erwähnt, sollte man immer eine sichere Verbindung aufbauen, um die Daten nicht unverschlüsselt durch das Internet zu übertragen. Es gibt im Internet viele Anleitungen. Eine, wie man mit openSSL ein Zertifikat erstellt, findet man auf server-wissen.de. [...]

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>