linux:create-client-server-certificate

This is an old revision of the document!


Create Client-Server TLS Certificates


FIXME


Im folgenden Beispiel, erstelle ich zwei neue Server Zertifikate und ein neues Client Zertifikat, welche beide mit einer lokal erstellten CA signiert werden.


Um überhaupt anschliessend eine eigene CA zu erstellen, benötige ich zuerst das passende OpenSSL Package für mein System sowie eine passende Ordnungsstruktur. Ich gehe daher wie folgt vor:

# yum install openssl.x86_64
# mkdir -p /opt/TLS_Certs/{Server_Cert-Key,Client_Cert-Key}

Um unsere späteren Client/Server Zertifikate zu erstellen, wird zuerst die neue CA erstellt. Dazu wird fogendermassen vorgegangen:

  1. Wechseln in das CA Hauptverzeichnis:
    # cd /opt/TLS_Certs/
  2. Erstellen des Initialen CA-Private-Keys (Wird mit starkem Passwort geschützt!):
    # openssl genrsa -aes256 -out ca-key.pem 4096
  3. Generieren des CA Zertifikats (mit 10 jähriger Gültigkeit):
    # openssl req -new -x509 -days 3650 -key ca-key.pem -sha256 -out ca.pem
  4. Zugriffe auf CA Key/Cert absichern:
    # chmod 0400 /opt/TLS_Certs/*.pem

Nun werden im ersten Teil einmal einen neuen Server Key, sowie ein neues Server Cert für den Server “vdock1” erstellt. Wir gehen wie folgt vor:

  1. Wechseln in das Server_Cert-Key Hauptverzeichnis:
    # cd /opt/TLS_Certs/Server_Cert-Key/
  2. Erstellen der Zertifikat Konfigurationsdatei:
    # vim /opt/TLS_Certs/Server_Cert-Key/extfile.cnf

    subjectAltName = DNS:vdock1.pnet.ch,IP:172.18.9.14,IP:127.0.0.1
    extendedKeyUsage = serverAuth

  3. Erstellen des Server-Private-Keys:
    # openssl genrsa -out server-key.pem 4096
  4. Erstellen des CSR (Signing Request) für den Server:
    # openssl req -subj "/CN=vdock1.pnet.ch" -sha256 -new -key server-key.pem -out server.csr
  5. Generieren des Server Zertifikats (mit 5 jähriger Gültigkeit):
    # openssl x509 -req -days 1825 -sha256 -in server.csr -CA ../ca.pem -CAkey ../ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf 

Jetzt müssen wir im zweiten Teil, noch ein passendes Client Zertifikat für unsere Clients erstellen. (Dieses Zertifikat, kann anschliessend auf alle Clients verteilt werden!)

  1. Wechseln in das Client_Cert-Key Hauptverzeichnis:
    # cd /opt/TLS_Certs/Client_Cert-Key/
  2. Erstellen der Zertifikat Konfigurationsdatei:
    # vim /opt/TLS_Certs/Client_Cert-Key/extfile.cnf

    extendedKeyUsage = clientAuth

  3. Erstellen des neuen Client-Private-Keys:
    # openssl genrsa -out client-key.pem 4096
  4. Erstellen des CSR (Signing Request) für den Client:
    # openssl req -subj '/CN=vdock1.pnet.ch' -new -key client-key.pem -out client.csr
  5. Generieren des Client Zertifikats (mit 5 jähriger Gültigkeit):
    # openssl x509 -req -days 1825 -sha256 -in client.csr -CA ../ca.pem -CAkey ../ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnf 
  • Der Inhalt von: /opt/TLS_Certs/Server_Cert-Key/ wird in unserem Beispiel, auf dem Appliokationsserver “vdock1.pnet.ch” kopiert und dort in der entsprechenden Applikation eingerichtet.
  • Der Inhalt von: /opt/TLS_Certs/Client_Cert-Key/ wird auf all unsere Clients kopiert und dort eingerichtet, damit diese Zugriff via TLS auf die Applikation erhalten.
  • linux/create-client-server-certificate.1508230011.txt.gz
  • Last modified: 2017/10/17 10:46
  • by michael