linux:create-client-server-certificate

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
linux:create-client-server-certificate [2017/10/17 12:37] – [Verteilen der neu erstellten Keys / Certs] michaellinux:create-client-server-certificate [2019/03/07 14:07] (current) – [Verteilen der neu erstellten Keys / Certs] michael
Line 1: Line 1:
-====== Create Client/Server TLS Certificates ======+====== Create Client/Server TLS Certificate ====== 
 + 
 +{{:linux:tux:templar.png?nolink&180|}}
  
 ---- ----
  
 ===== Funktionsprinzip einer TLS Verschlüsselung ===== ===== Funktionsprinzip einer TLS Verschlüsselung =====
-**TLS** ''(Transaction Layer Security)'' ist die standardisierten Weiterentwicklungen von SSL (TLS 1.0 = SSL 3.1). SSL wird also nun unter dem Namen TLS weiterentwickelt. TLS und SSL werden daher oft auch synonym verwendet. ''TLS ist laut RFC 2246 eine Technologie zur Sicherung des Netzwerk-Datenaustausches zwischen Anwendungen, das Datenschutz und Datenintegrität ("privacy and integrity") gewährleistet (bzw. gewährleisten soll).'' Historisch leitet sich TLS/SSL von IPSec abTLS besteht aus zwei "Ebenen" ("Layers"), die jeweils als Protokolle implementiert sindDabei baut das "Handshake Protocol" (Protokoll zum Aushandeln eines Datenkanals) auf dem "Record Protocol" (Protokoll zur Übermittlung von Datensätzen) auf. +**TLS** ''(Transaction Layer Security)'' ist die standardisierten Weiterentwicklungen von SSL (TLS 1.0 = SSL 3.1). SSL wird also nun unter dem Namen TLS weiterentwickelt. TLS und SSL werden daher oft auch synonym verwendet. ''TLS ist laut RFC 2246 eine Technologie zur Sicherung des Netzwerk-Datenaustausches zwischen Anwendungen, das Datenschutz und Datenintegrität ("privacy and integrity") gewährleistet (bzw. gewährleisten soll).'' Der generelle Ablauf bei TLS beginnt mit dem Aufbau einer Verbindung vom Client zum ServerDabei schickt er auch gleich eine Liste an unterstützten Cipher Suites mit. Anschliessend authentisiert sich der Server gegenüber dem Client mit seinem Zertifikat und der ausgewählten Cipher Suite. Der Client überprüft das Zertifikat und authentisiert sich ggf. selbst auch noch gegenüber dem Server mit einem eigenen Zertifikat. Nun schickt entweder der Client dem Server eine verschlüsselte Zufallszahl, die mit dem öffentlichen Schlüssel des Servers verschlüsselt ist, oder beide Parteien berechnen ein gemeinsames Geheimnis mit dem Diffie-Hellman-SchlüsselaustauschverfahrenMit dem daraus abgeleiteten kryptographischen Schlüssel, werden nun alle Nachrichten der Verbindung mit einem ausgewählten symmetrischen Verschlüsselungsverfahren verschlüsselt.
  
 +**Beispiel Umgebung:**
 +{{:linux:client-server-tls.jpg|}}
  
 ---- ----
Line 12: Line 15:
 <WRAP center box 100%> <WRAP center box 100%>
 ===== Erstellungsvorgang von unabhängigen Client / Server Zertifikaten ===== ===== Erstellungsvorgang von unabhängigen Client / Server Zertifikaten =====
-''Im folgenden Beispiel, erstelle ich **zwei neue Server Zertifikate** und **ein neues Client Zertifikat**, welche **beide mit einer lokal erstellten CA signiert** werden.'' +''Im folgenden Beispiel, erstelle ich **ein neues Server Zertifikat** als sowohl **ein neues Client Zertifikat**, welche **beide mit einer lokal erstellten CA signiert** werden.'' Der Aufbau entspricht der obigen Übersicht.
  
 ---- ----
Line 41: Line 44:
  
   - Wechseln in das Server_Cert-Key Hauptverzeichnis: <code># cd /opt/TLS_Certs/Server_Cert-Key/</code>   - Wechseln in das Server_Cert-Key Hauptverzeichnis: <code># cd /opt/TLS_Certs/Server_Cert-Key/</code>
-  - Erstellen der Zertifikat Konfigurationsdatei: <code># vim /opt/TLS_Certs/Server_Cert-Key/extfile.cnf</code> <sxh bash;>subjectAltName = DNS:vdock1.pnet.ch,IP:172.18.9.14,IP:127.0.0.1+  - Erstellen der Zertifikat Konfigurationsdatei: <code># vim /opt/TLS_Certs/Server_Cert-Key/extfile.cnf</code> <sxh bash;>subjectAltName = DNS:vdock1.pnet.ch
 extendedKeyUsage = serverAuth</sxh> extendedKeyUsage = serverAuth</sxh>
   - Erstellen des Server-Private-Keys: <code># openssl genrsa -out server-key.pem 4096</code>   - Erstellen des Server-Private-Keys: <code># openssl genrsa -out server-key.pem 4096</code>
Line 59: Line 62:
  
 </WRAP> </WRAP>
 +
  
  
Line 71: Line 75:
  
  
 +===== Weiteres =====
  
 +<WRAP center round download 100%>
 +''Ansible Skript zur vollautomatischen Erstellung und Verteilung der Key / Certs:''
 +  * 
 +</WRAP>
  
 +  * [[linux:openSSL|Praktische Experimente mit OpenSSL, sowie Certificate-Validation und Analyse]]
  
  
  • linux/create-client-server-certificate.1508236669.txt.gz
  • Last modified: 2017/10/17 12:37
  • by michael