SSL: Unterschied zwischen den Versionen

Aus darkrealm Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Chris (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(31 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
1. Eigene CA erstellen:
== Eigene CA erstellen ==


Verzeichnisse erstellen:


<pre>
mkdir -p /etc/ssl/darkrealm/CA/private
mkdir -p /etc/ssl/darkrealm/CA/newcerts
touch /etc/ssl/darkrealm/CA/index.txt
echo 0000 > /etc/ssl/darkrealm/CA/serial
</pre>


2. Webserver Certificate Request erstellen :
im /etc/ssl/darkrealm verzeichnis ausführen:


openssl -req -new -nodes -out req.pem -config openssl.cnf
<pre>
openssl req -config darkrealm.cnf -new -x509 -days 3650 -keyout CA/private/ca.key -out CA/ca.crt
</pre>


req -new : Neue Zertifikatsanfrage
*req :
-nodes : Nicht mit Passphrase verschlüsseln
*-config : die angegebene Konfigurationsdatei benutzen
-out : Ausgabedatei
*-new : Neue Zertifikatsanfrage
-config : bestimmtes configfile benutzen
*-x509: Gebe ein selbstsigniertes Zertifikat anstatt einer Zertifikatsanfrage aus
*-days 3650 : Gültigkeitsdauer
*-keyout : Privaten Schlüssel in diese Datei ausgeben
*-out : Zertifikat in Datei ausgeben


3. Webserver Certificate Request signieren :
== Webserver Certificate Request erstellen ==


openssl openssl ca -out cert.pem -config ./openssl.cnf -infiles req.pem
im /etc/ssl/darkrealm Verzeichnis ausführen:
 
<pre>
openssl req -config darkrealm.cnf -new -nodes -keyout apache.key -out apache.csr
</pre>
 
*req:
*-config: Die angegebene Konfigurationsdatei benutzen
*-new : Neue Zertifikatsanfrage
*-nodes : Nicht mit Passphrase verschlüsseln
*-keyout : Privaten Schlüssel in diese Datei ausgeben
*-out : Zertifikatsanfrage in diese Datei ausgeben
 
== Webserver Certificate Request signieren ==
 
im /etc/ssl/darkrealm Verzeichnis ausführen:
 
<pre>
openssl ca -config darkrealm.cnf -out apache.crt -in apache.csr
</pre>
 
Danach das Zertifikat und den privaten Schlüssel nach /etc/ssl/apache2 kopieren.
 
Abschließend muss noch das CA-Zertifikat (ca.crt) in den jeweiligen Browser importiert werden.
 
 
== LDAP Server Certificate Request erstellen ==
 
Anmerkung : musste sämtliche nsCert* Einträge aus darkrealm.cnf entfernen daß jxplorer via SSL auf den ldap server zugreifen konnte.
 
im /etc/ssl/darkrealm Verzeichnis ausführen:
 
<pre>
openssl req -config darkrealm.cnf -new -nodes -keyout ldap.key -out ldap.csr
</pre>
 
== LDAP Server Certificate Request signieren ==
 
<pre>
openssl ca -config darkrealm.cnf -out ldap.crt -in ldap.csr
</pre>
 
== Bearbeitete openssl.cnf ==
 
<pre>
dir = ./demoCA # TSA root directory
serial = $dir/tsaserial # The current serial number (mandatory)
crypto_device = builtin # OpenSSL engine to use for signing
signer_cert = $dir/tsacert.pem # The TSA signing certificate
# (optional)
certs = $dir/cacert.pem # Certificate chain to include in reply
# (optional)
signer_key = $dir/private/tsakey.pem # The TSA private key (optional)
 
default_policy = tsa_policy1 # Policy if request did not specify it
# (optional)
other_policies = tsa_policy2, tsa_policy3 # acceptable policies (optional)
digests = md5, sha1 # Acceptable message digests (mandatory)
accuracy = secs:1, millisecs:500, microsecs:100 # (optional)
clock_precision_digits  = 0 # number of digits after dot. (optional)
ordering = yes # Is ordering defined for timestamps?
# (optional, default: no)
tsa_name = yes # Must the TSA name be included in the reply?
# (optional, default: no)
ess_cert_id_chain = no # Must the ESS cert id chain be included?
# (optional, default: no)
</pre>
 
== .pem nach .p12 konvertieren ==
 
<pre>
openssl pkcs12 -export -inkey key.pem -in cert.pem -out file.p12 -name "TEST"
</pre>
 
* pkcs12 : pkcs12 facility
* -export: pkcs12 Datei generieren und nicht parsen
* -inkey : Schlüssel
* -in    : Original Zertifikat
* -out  : Ausgabezertifikat
* -name  : Freundlicher Name
 
== CRL erstellen (oder updaten) ==
 
Zuerst im darkrealm/CA Verzeichnis crlnumber erstellen mit echo 00 > crlnumber
 
<pre>
openssl ca -config darkrealm.cnf -gencrl -out crl.pem
</pre>
 
=== CA-Zertifikat und CRL zusammenfügen (für Dovecot) ===
 
cat ca.crt crl.pem > ca+crl.pem
 
=== Zertifikat revoken ===
<pre>
openssl ca -config /etc/ssl/darkrealm/darkrealm.cnf -revoke /etc/ssl/darkrealm/CA/newcerts/<zertifikat>.pem
</pre>
 
== Zertifikat erneuern ==
 
=== Neuen CSR aus altem Zertifikat generieren ===
<pre>
openssl x509 -x509toreq -in <abgelaufenes Zertifikat>.crt -out <abgelaufenes Zertifikat>2.csr -signkey <abgelaufenes Zertifikat>.key
</pre>
 
=== altes Zertifikat revoken ===
<pre>
openssl ca -config darkrealm.cnf -revoke <abgelaufenes Zertifikat>.crt
</pre>
 
=== CRL neu generieren ===
<pre>
openssl ca -config darkrealm.cnf -gencrl -out crl.crt
</pre>
 
=== Neuen CSR signieren ===
<pre>
openssl ca -config darkrealm.cnf -out <neues Zertifikat>2.crt -in <neues Zertifikat>2.csr -extensions server_cert
</pre>
 
=== Neues Zertifikat über das alte kopieren ===
<pre>
mv <neues Zertifikat>2.crt <neues Zertifikat>.crt
</pre>
 
Anschließend verwendeten Daemon neu starten.
 
 
 
 
== Client Zertifikat erstellen ==

Aktuelle Version vom 30. Dezember 2019, 22:21 Uhr

Eigene CA erstellen

Verzeichnisse erstellen:

mkdir -p /etc/ssl/darkrealm/CA/private
mkdir -p /etc/ssl/darkrealm/CA/newcerts
touch /etc/ssl/darkrealm/CA/index.txt
echo 0000 > /etc/ssl/darkrealm/CA/serial

im /etc/ssl/darkrealm verzeichnis ausführen:

openssl req -config darkrealm.cnf -new -x509 -days 3650 -keyout CA/private/ca.key -out CA/ca.crt
  • req :
  • -config : die angegebene Konfigurationsdatei benutzen
  • -new : Neue Zertifikatsanfrage
  • -x509: Gebe ein selbstsigniertes Zertifikat anstatt einer Zertifikatsanfrage aus
  • -days 3650 : Gültigkeitsdauer
  • -keyout : Privaten Schlüssel in diese Datei ausgeben
  • -out : Zertifikat in Datei ausgeben

Webserver Certificate Request erstellen

im /etc/ssl/darkrealm Verzeichnis ausführen:

openssl req -config darkrealm.cnf -new -nodes -keyout apache.key -out apache.csr
  • req:
  • -config: Die angegebene Konfigurationsdatei benutzen
  • -new : Neue Zertifikatsanfrage
  • -nodes : Nicht mit Passphrase verschlüsseln
  • -keyout : Privaten Schlüssel in diese Datei ausgeben
  • -out : Zertifikatsanfrage in diese Datei ausgeben

Webserver Certificate Request signieren

im /etc/ssl/darkrealm Verzeichnis ausführen:

openssl ca -config darkrealm.cnf -out apache.crt -in apache.csr

Danach das Zertifikat und den privaten Schlüssel nach /etc/ssl/apache2 kopieren.

Abschließend muss noch das CA-Zertifikat (ca.crt) in den jeweiligen Browser importiert werden.


LDAP Server Certificate Request erstellen

Anmerkung : musste sämtliche nsCert* Einträge aus darkrealm.cnf entfernen daß jxplorer via SSL auf den ldap server zugreifen konnte.

im /etc/ssl/darkrealm Verzeichnis ausführen:

openssl req -config darkrealm.cnf -new -nodes -keyout ldap.key -out ldap.csr

LDAP Server Certificate Request signieren

openssl ca -config darkrealm.cnf -out ldap.crt -in ldap.csr

Bearbeitete openssl.cnf

dir		= ./demoCA		# TSA root directory
serial		= $dir/tsaserial	# The current serial number (mandatory)
crypto_device	= builtin		# OpenSSL engine to use for signing
signer_cert	= $dir/tsacert.pem 	# The TSA signing certificate
					# (optional)
certs		= $dir/cacert.pem	# Certificate chain to include in reply
					# (optional)
signer_key	= $dir/private/tsakey.pem # The TSA private key (optional)

default_policy	= tsa_policy1		# Policy if request did not specify it
					# (optional)
other_policies	= tsa_policy2, tsa_policy3	# acceptable policies (optional)
digests		= md5, sha1		# Acceptable message digests (mandatory)
accuracy	= secs:1, millisecs:500, microsecs:100	# (optional)
clock_precision_digits  = 0	# number of digits after dot. (optional)
ordering		= yes	# Is ordering defined for timestamps?
				# (optional, default: no)
tsa_name		= yes	# Must the TSA name be included in the reply?
				# (optional, default: no)
ess_cert_id_chain	= no	# Must the ESS cert id chain be included?
				# (optional, default: no)

.pem nach .p12 konvertieren

openssl pkcs12 -export -inkey key.pem -in cert.pem -out file.p12 -name "TEST"
  • pkcs12 : pkcs12 facility
  • -export: pkcs12 Datei generieren und nicht parsen
  • -inkey : Schlüssel
  • -in  : Original Zertifikat
  • -out  : Ausgabezertifikat
  • -name  : Freundlicher Name

CRL erstellen (oder updaten)

Zuerst im darkrealm/CA Verzeichnis crlnumber erstellen mit echo 00 > crlnumber

openssl ca -config darkrealm.cnf -gencrl -out crl.pem

CA-Zertifikat und CRL zusammenfügen (für Dovecot)

cat ca.crt crl.pem > ca+crl.pem

Zertifikat revoken

openssl ca -config /etc/ssl/darkrealm/darkrealm.cnf -revoke /etc/ssl/darkrealm/CA/newcerts/<zertifikat>.pem

Zertifikat erneuern

Neuen CSR aus altem Zertifikat generieren

openssl x509 -x509toreq -in <abgelaufenes Zertifikat>.crt -out <abgelaufenes Zertifikat>2.csr -signkey <abgelaufenes Zertifikat>.key

altes Zertifikat revoken

openssl ca -config darkrealm.cnf -revoke <abgelaufenes Zertifikat>.crt

CRL neu generieren

openssl ca -config darkrealm.cnf -gencrl -out crl.crt

Neuen CSR signieren

openssl ca -config darkrealm.cnf -out <neues Zertifikat>2.crt -in <neues Zertifikat>2.csr -extensions server_cert

Neues Zertifikat über das alte kopieren

mv <neues Zertifikat>2.crt <neues Zertifikat>.crt

Anschließend verwendeten Daemon neu starten.



Client Zertifikat erstellen