openssl

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
openssl [16/08/2024 - 16:11] – [Test einer ssl Verbindung mit openssl s_client] adminopenssl [06/09/2024 - 07:30] (aktuell) – [Test einer ssl Verbindung mit openssl s_client] admin1
Zeile 131: Zeile 131:
 Das Standard-Tool für die Analyse von SSL-Funktionen ist das Kommandozeilenprogramm von OpenSSL. Das Standard-Tool für die Analyse von SSL-Funktionen ist das Kommandozeilenprogramm von OpenSSL.
  
 +https://docs.openssl.org/1.0.2/man1/s_client/
 <code> <code>
 openssl s_client -connect imap.1und1.de:993 openssl s_client -connect imap.1und1.de:993
Zeile 153: Zeile 154:
 ===== Zufalls-Passwort generieren ===== ===== Zufalls-Passwort generieren =====
  
 +<code>
 openssl rand -base64 openssl rand -base64
 +
 +</code>
  
 Alternativ über doveadmin, siehe dort. Alternativ über doveadmin, siehe dort.
  
-Zertifikat Formate und ihre Konvertierung+===== Zertifikat Formate und ihre Konvertierung =====
  
 PKCS Dateien erzeugen (*.pfx, *.p12) PKCS Dateien erzeugen (*.pfx, *.p12)
  
 +<code>
 openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile more.crt openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile more.crt
 +
 +</code>
  
 This is optional, this is if you have any additional certificates you would like to include in the PFX file. This is optional, this is if you have any additional certificates you would like to include in the PFX file.
Zeile 167: Zeile 174:
 User Zertifikat erzeugen wie Server Zertifikat. Für VPN Verbindung kann ohne Passwort gearbeitet werden, es geht aber auch mit Passwort! User Zertifikat erzeugen wie Server Zertifikat. Für VPN Verbindung kann ohne Passwort gearbeitet werden, es geht aber auch mit Passwort!
  
 +<code>
 openssl genrsa -aes256 -out apache.key.pem -rand ./private/.rand 2048 openssl genrsa -aes256 -out apache.key.pem -rand ./private/.rand 2048
 +
 +</code>
  
 Key Formate konvertieren Key Formate konvertieren
Zeile 173: Zeile 183:
 Von pfx nach pem Von pfx nach pem
  
 +<code>
 openssl pkcs12 -in [pkcs-12-certificate-and-key-file] -out [pem-certificate-and-key-file] openssl pkcs12 -in [pkcs-12-certificate-and-key-file] -out [pem-certificate-and-key-file]
 +
 +</code>
  
 ca-certs extrahieren ca-certs extrahieren
  
 +<code>
 openssl pkcs12 -in ${filename}.pfx -nodes -nokeys -cacerts -out ${filename}-ca.crt openssl pkcs12 -in ${filename}.pfx -nodes -nokeys -cacerts -out ${filename}-ca.crt
 +
 +</code>
  
 key extrahieren key extrahieren
  
-key extrahieren openssl pkcs12 -in ${filename}.pfx -nocerts -out ${filename}.key+<code> 
 +openssl pkcs12 -in ${filename}.pfx -nocerts -out ${filename}.key 
 + 
 +</code>
  
 cert extrahieren cert extrahieren
  
 +<code>
 openssl pkcs12 -in ${filename}.pfx -clcerts -nokeys -out ${filename}.crt openssl pkcs12 -in ${filename}.pfx -clcerts -nokeys -out ${filename}.crt
 +
 +</code>
  
 ca-certs und cert zusammen kleben ca-certs und cert zusammen kleben
  
 +<code>
 cat ${filename}.crt ${filename}-ca.crt> ${filename}-full.crt cat ${filename}.crt ${filename}-ca.crt> ${filename}-full.crt
 +
 +</code>
  
 Passphäse aus key löschen Passphäse aus key löschen
  
 +<code>
 openssl rsa -in ${filename}.key -out ${filename}.key openssl rsa -in ${filename}.key -out ${filename}.key
 +
 +</code>
 +
  
 ===== Certification Authority ===== ===== Certification Authority =====
  
-Anleitung aus http://fra.nksteidl.de/Erinnerungen/OpenSSL.php+Anleitung aus [[http://fra.nksteidl.de/Erinnerungen/OpenSSL.php|http://fra.nksteidl.de/Erinnerungen/OpenSSL.php]] 
 + 
 +Privaten Schlüssel für CA mit gutem PW erzeugen 
 + 
 +openssl genrsa -aes256 -out /etc/sslprivate/RootCA.key.pem -rand /etc/ssl/private/.rand 2048 
 + 
 +Danach öffentlichen Schlüssel erzeugen: 
 + 
 +openssl req -new -x509 -days 1827 -key /etc/ssl/private/RootCA.key.pem -out /etc/sslcert /RootCA.cert.pem 
 + 
 +===== CA erzeugen ===== 
 + 
 +\\ 
 +openssl genrsa -out apache.key.pem -rand ./private/.rand 2048 openssl req -new -key apache.key.pem -out apache.req.pem 
 + 
 +openssl ca -name ServerCA -in apache.req.pem -out apache.cert.pem 
 + 
 +mv newcerts/01.pem certs/ 
 + 
 +cd certs ln -s 01.pem 
 + 
 +openssl x509 -hash -noout -in 01.pem` 
 + 
 +Dabei nacheinander Land (DE), Region (ST), Stadt, Organisationsname (O) und -einheit (OU) eingeben, Wichtig: Der "common name" (CN) ist der Apache Server-Name, auf den die Clients zugreifen. Dann die erzeugten *.key, *.crt und *.pem Dateien in die passenden ssl/ Verzeichnisse unterhalb /etc/httpd/ oder /etc/apache2/ verschieben. Bei virtual hosts prüfen, ob ein Eintrag "VirtualHost _default_:443" mit den passenden SSL Regeln besteht. 
 + 
 +Achtung: Eigene Zertifikate für die virtual hosts gehen nur mit eigener IP Adresse für jeden dieser Server. Alternative ist subjectaltname, im Zertifikat, ist aber nicht richtig sicher. Dann den Server neu starten. Beim ersten https Zugriff per Browser wird das Zertifikat angeboten. Ggf. den Inhalt des Zertifikats prüfen. (Klick auf das Verschlüsselungs-Symbol im Browser unten rechts) 
 + 
 +Verlinkung der erzeugten Zertifikate 
 + 
 +Um dieses erste Zertifikat der RootCA in das normale Handling der CA zu geben, muß es noch kopiert und verlinkt werden. Die Zertifikate werden im Unterverzeichnis certs mit dem Namen Ihrer Seriennummer gelegt und der Hash-Wert wird verlinkt: 
 + 
 +cd /etc/sslcerts/\\ 
 +cp RootCA.cert.pem /usr/lib/ssl/RootCA/certs/00.pem 
 + 
 +cd /etc/ssl/certs/\\ 
 +ln -s 00.pem `openssl x509 -hash -noout -in 00.pem`. 
 + 
 +===== Sub CA für Server Signaturen erstellen ===== 
 + 
 +Wie oben, nur wird ein CSR erzeugt, der von der Root CA signiert werden muss. 
 + 
 +privaten Schlüssel erzeugen 
 + 
 +Dann singning request (CSR) * mit RootCA signieren 
 + 
 +CSR erzeugen: openssl req -new -key /usr/lib/ssl/ServerCA/private/ServerCA.key.pem -out /usr/lib/ssl/ServerCA/ServerCA.req.pem 
 + 
 +Signieren und hier die zeitliche Gültigkeit definieren: 
 + 
 +openssl x509 -req -days 720 -in certs/ServerCAnetzwissen.req.pem -CA certs/RootCAnetzwissen.cert.pem -CAkey private/RootCAnetzwissen.key.pem -out certs/ServerCAnetzwissen.cert.pem 
 + 
 +Achtung: im Verz. des zum Signieren benutzten RootCA files muss es eine serial Datei geben: 
 + 
 +The default filename consists of the CA certificate file base name with .srl appended. For example if the CA certificate file is called mycacert.pem, it expects to find a serial number file called mycacert.srl. 
 + 
 +===== Zertifikate erzeugen ===== 
 + 
 +Für Signieren über die eigene CA oder zum externen Signieren. Mit der ServerCA lassen sich jetzt Zertifikate für Server erstellen. Diese sollten - weil sie ihren Private Key ohne menschliches Zutun benutzen müssen - keine Passphrase haben. Dies geschieht durch Weglassen des Verschlüsselungs-Algoritmus beim Erstellen des Private Key. Ansonsten sind das auch nur normale Zertifikate. Allerdings werden sie nicht von der RootCA, sondern von der ServerCA signiert. 
 + 
 +===== Einrichten von Apache mit mod_ssl ===== 
 + 
 +In apache 2.x entfällt der AddModule Befehl. Dort werden alle Module -zumindest bei SUSE- über /etc/sysconfig/apache2 definiert und beim Start per rcapache2 in die Konfiguration in /etc/apache2/ übernommen. In /etc/httpd/suse_define.conf -D SSL eintragen. Damit werden die <IfDefine SSL> Direktiven der httpd.conf aktiviert (Ohne tut's nicht!) (in suse_define.conf) -D SSL 
 + 
 +Neue Anleitung für opensuse siehe [[http://en.opensuse.org/Apache_Howto_SSL|http://en.opensuse.org/Apache_Howto_SSL]] 
 + 
 +===== Easy RSA - gängige Befehle ===== 
 + 
 +Siehe [[https://www.netzwissen.de/wiki/doku.php?id=easyrsa&s[]=easyrsa|https://www.netzwissen.de/wiki/doku.php?id=easyrsa&s[]=easyrsa]]
  
-Privaten Schlüssel für CA mit gutem PW erzeugen openssl genrsa -aes256 -out /etc/sslprivate/RootCA.key.pem -rand /etc/ssl/private/.rand 2048 Danach öffentlichen Schlüssel erzeugen: openssl req -new -x509 -days 1827 -key /etc/ssl/private/RootCA.key.pem -out /etc/sslcert /RootCA.cert.pem ===== CA erzeugen ===== nach http://fra.nksteidl.de/Erinnerungen/OpenSSL.php cd ServerCA\\ +Zeritifkate konvertieren nur privatebn Schlüssel extrahieren # openssl pkcs12 -in filename.pfx -nocerts -out key.pem Zertifikat exportieren # openssl pkcs12 -in filename.pfx -clcerts -nokeys -out cert.pem Diffie hellman Parameter erzeugen openssl dhparam -out dhparams.pem 4096
-openssl genrsa -out apache.key.pem -rand ./private/.rand 2048 openssl req -new -key apache.key.pem -out apache.req.pem openssl ca -name ServerCA -in apache.req.pem -out apache.cert.pem mv newcerts/01.pem certs/ cd certs ln -s 01.pem `openssl x509 -hash -noout -in 01.pem`.0 Dabei nacheinander Land (DE), Region (ST), Stadt, Organisationsname (O) und -einheit (OU) eingeben, Wichtig: Der "common name" (CN) ist der Apache Server-Name, auf den die Clients zugreifen. Dann die erzeugten *.key, *.crt und *.pem Dateien in die passenden ssl/ Verzeichnisse unterhalb /etc/httpd/ oder /etc/apache2/ verschieben. Bei virtual hosts prüfen, ob ein Eintrag "VirtualHost _default_:443" mit den passenden SSL Regeln besteht. Achtung: Eigene Zertifikate für die virtual hosts gehen nur mit eigener IP Adresse für jeden dieser Server. Alternative ist subjectaltname, im Zertifikat, ist aber nicht richtig sicher. Dann den Server neu starten. Beim ersten https Zugriff per Browser wird das Zertifikat angeboten. Ggf. den Inhalt des Zertifikats prüfen. (Klick auf das Verschlüsselungs-Symbol im Browser unten rechts) ===== Verlinkung der erzeugten Zertifikate ===== Um dieses erste Zertifikat der RootCA in das normale Handling der CA zu geben, muß es noch kopiert und verlinkt werden. Die Zertifikate werden im Unterverzeichnis certs mit dem Namen Ihrer Seriennummer gelegt und der Hash-Wert wird verlinkt: cd /etc/sslcerts/\\ +
-cp RootCA.cert.pem /usr/lib/ssl/RootCA/certs/00.pem cd /etc/ssl/certs/\\ +
-ln -s 00.pem `openssl x509 -hash -noout -in 00.pem`.0 ==== Sub CA für Server Signaturen erstellen ==== Wie oben, nur wird ein CSR erzeugt, der von der Root CA signiert werden muss, die damit das Zertifikat erstellt. * privaten Schlüssel erzeugen * Dann singning request (CSR) * mit RootCA signieren CSR erzeugen: openssl req -new -key /usr/lib/ssl/ServerCA/private/ServerCA.key.pem -out /usr/lib/ssl/ServerCA/ServerCA.req.pem Signieren und hier die zeitliche Gültigkeit definieren: openssl x509 -req -days 720 -in certs/ServerCAnetzwissen.req.pem -CA certs/RootCAnetzwissen.cert.pem -CAkey private/RootCAnetzwissen.key.pem -out certs/ServerCAnetzwissen.cert.pem Achtung: im Verz. des zum Signieren benutzten RootCA files muss es eine serial Datei geben: The default filename consists of the CA certificate file base name with .srl appended. For example if the CA certificate file is called mycacert.pem, it expects to find a serial number file called mycacert.srl. ===== ===== ====== Zertifikate erzeugen ====== Für Signieren über die eigene CA oder zum externen Signieren. Mit der ServerCA lassen sich jetzt Zertifikate für Server erstellen. Diese sollten - weil sie ihren Private Key ohne menschliches Zutun benutzen müssen - keine Passphrase haben. Dies geschieht durch Weglassen des Verschlüsselungs-Algoritmus beim Erstellen des Private Key. Ansonsten sind das auch nur normale Zertifikate. Allerdings werden sie nicht von der RootCA, sondern von der ServerCA signiert. ===== Einrichten von Apache mit mod_ssl ===== In apache 2.x entfällt der AddModule Befehl. Dort werden alle Module -zumindest bei SUSE- über /etc/sysconfig/apache2 definiert und beim Start per rcapache2 in die Konfiguration in /etc/apache2/ übernommen. In /etc/httpd/suse_define.conf -D SSL eintragen. Damit werden die <IfDefine SSL> Direktiven der httpd.conf aktiviert (Ohne tut's nicht!) (in suse_define.conf) -D SSL Neue Anleitung für opensuse siehe http://en.opensuse.org/Apache_Howto_SSL ===== ===== ====== Easy RSA - gängige Befehle ====== Siehe https://www.netzwissen.de/wiki/doku.php?id=easyrsa&s[]=easyrsa Zeritifkate konvertieren nur privatebn Schlüssel extrahieren # openssl pkcs12 -in filename.pfx -nocerts -out key.pem Zertifikat exportieren # openssl pkcs12 -in filename.pfx -clcerts -nokeys -out cert.pem Diffie hellman Parameter erzeugen openssl dhparam -out dhparams.pem 4096+
  
  
  • openssl.1723824660.txt.gz
  • Zuletzt geändert: 17/08/2024 - 07:06
  • (Externe Bearbeitung)