Bearbeiten von „Zertifikat“

Zur Navigation springen Zur Suche springen

Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 1: Zeile 1:
[[Kategorie:ServerApplikation]] [[Kategorie:Sicherheit]]
[[Kategorie:ServerApplikation]] [[Kategorie:Sicherheit]]


== Dateitypen ==
== CA generieren (Version 3) ==
* Encodings (also used as extensions)
<pre>CERT=vmd9593
** .DER = The DER extension is used for binary DER encoded certificates. These files may also bear the CER or the CRT extension.
# key generieren:
** .PEM = The PEM extension is used for different types of X.509v3 files which contain ASCII (Base64) armored data prefixed with a “—– BEGIN …” line.
openssl genrsa -out $CERT.key 2048
* Extensions:
 
** .CRT = The CRT extension is used for certificates. The certificates may be encoded as binary DER or as ASCII PEM. The CER and CRT extensions are nearly synonymous.  Most common among *nix systems
# Generate a CSR (Certificate Signing Request)
** .CER = alternate form of .crt (Microsoft Convention) You can use MS to convert .crt to .cer (.both DER encoded .cer, or base64[PEM] encoded .cer)  The .cer file extension is also recognized by IE as a command to run a MS cryptoAPI command (specifically rundll32.exe cryptext.dll,CryptExtOpenCER) which displays a dialogue for importing and/or viewing certificate contents.
openssl req -new -key $CERT.key -out $CERT.csr
** KEY = The KEY extension is used both for public and private PKCS#8 keys. The keys may be encoded as binary DER or as ASCII PEM.
# Remove Passphrase from Key
cp $CERT.key $CERT.key.org
openssl rsa -in $CERT.key.org -out $CERT.key
</pre>
 
== Zertifikat erstellen ==


== Wildcard-Zertifikat ==
<pre>IP=79.143.188.145
<pre>ROOT_CA=rootCA
AT='@'
VALID_DAYS=1000
FN=${CERT}_extensions
CERT=vmd9593
echo >$FN "subjectAltName = IP:$IP"
# Schlüssel generieren, kein Passwort:
echo >>$FN "[ ${CERT}_http ]"
openssl genrsa -out $CERT.key 2048
echo >>$FN "nsCertType      = server"
echo >>$FN "keyUsage        = digitalSignature,nonRepudiation,keyEncipherment"
echo >>$FN "extendedKeyUsage        = serverAuth"
echo >>$FN "subjectKeyIdentifier    = hash"
echo >>$FN "authorityKeyIdentifier  = keyid,issuer"
echo >>$FN "subjectAltName          = $AT${CERT}_http_subject"
echo >>$FN "[ ${CERT}_http_subject ]"
 
echo >>$FN "DNS.1 = f-r-e-i.de"
echo >>$FN "DNS.2 = www.f-r-e-i.de"
...
openssl x509 -req -days 730 -in ${CERT}.csr -signkey ${CERT}.key \
  -out ${CERT}.crt -extfile $FN -extensions ${CERT}_http
</pre>
 
== Erstellen CA (version 2) ==
<pre>CA_DIR=/home/ca
mkdir -p $CA_DIR ; cd $CA_DIR
mkdir {certsdb,certreqs,crl,private,newcerts}
chmod 700 private
touch index.txt
cp /etc/ssl/openssl.cnf .
$EDITOR openssl.cnf
diff /etc/ssl/openssl.cnf openssl.cnf
</pre>
<pre>< dir          = ./demoCA              # Where everything is kept
> dir          = /home/ca              # Where everything is kept
< default_days  = 365                  # how long to certify for
> default_days  = 730                  # how long to certify for
< countryName_default          = AU
> countryName_default          = DE
< stateOrProvinceName_default  = Some-State
> stateOrProvinceName_default  = Bavaria
> localityName_default  = Munich
< 0.organizationName_default    = Internet Widgits Pty Ltd
> 0.organizationName_default    = e-motional-experience.de
> commonName_default    = e-motional-experience.de
> emailAddress_default  = hamatoma@gmx.de
</pre>
 
== Erstellen CA ==
<pre># no challenge password
openssl req -new -newkey rsa:2048 -keyout private/cakey.pem -out careq.pem -config ./openssl.cnf
openssl ca -create_serial -out cacert.pem -days 365 -keyfile private/cakey.pem -selfsign \
  -extensions v3_ca_has_san -config ./openssl.cnf -infiles careq.pem
</pre>
 
== Erstellen (Version 1) ==
<pre>
openssl req -new -x509 -newkey rsa:2048 -keyout nginx.key -out nginx.pem -days 3650
</pre>
 
== Mit Signierung ==
 
<pre>
FN_CA=dockerCA
FN_CERT=hamatoma.de
cd /etc/ssl
test -d ca || mkdir ca
cd ca
openssl genrsa -out $FN_CA.key 2048
 
openssl req -x509 -new -nodes -key $FN_CA.key -days 3650 -out $FN_CA.crt
 
openssl genrsa -out $FN_CERT.key 2048
# kein Passwort vergeben!
openssl req -new -key $FN_CERT.key -out $FN_CERT.csr
 
echo "subjectAltName = IP:212.144.248.3" > extfile.cnf
openssl x509 -req -in $FN_CERT.csr -CA $FN_CA.crt -CAkey $FN_CA.key -CAcreateserial -out $FN_CERT.crt -days 3650 -extfile extfile.cnf
 
cp $FN_CERT.crt ../certs
cp $FN_CERT.key ../private


# Zertifikatsanfrage generieren: CN (Common Name) evt. IP-Adresse
</pre>
# Bei CN (Common Name) eintragen: "*.f-r-e-i.de"
openssl req -new -key $CERT.key -out $CERT.csr -sha512 -config ./openssl.cnf


# Signieren:
== Passwort entfernen ==
openssl x509 -req -days $VALID_DAYS -in $CERT.csr -signkey ${ROOT_CA}.key -out $CERT.pem
<pre>
openssl rsa -in nginx.key -out nginx.key
</pre>
</pre>
* Es wird einmal das Passwort abgefragt

Bitte kopiere keine Webseiten, die nicht deine eigenen sind, benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Urhebers!
Du gibst uns hiermit deine Zusage, dass du den Text selbst verfasst hast, dass der Text Allgemeingut (public domain) ist, oder dass der Urheber seine Zustimmung gegeben hat. Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der Diskussionsseite darauf hin. Bitte beachte, dass alle Info-Theke-Beiträge automatisch unter der „Gemeinfreiheit“ stehen (siehe Info-Theke:Urheberrechte für Einzelheiten). Falls du nicht möchtest, dass deine Arbeit hier von anderen verändert und verbreitet wird, dann klicke nicht auf „Seite speichern“.

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)