XCA

Links

Installation mit „Remote Database“-Unterstützung:

dnf -y install xca qt5-qtbase-mysql qt5-qtbase-odbc qt5-qtbase-postgresql

Notwendige Rechte für den xca-Datenbankbenutzer:

SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE VIEW,INDEX,ALTER,DROP

Empfohlene Gültigkeiten

  • Root CA: 10 Jahre

  • OpenVPN-CA (als Sub-CA realisiert, pathlen=0): 10 Jahre

  • OpenVPN-Server-Zertifikat: 3 Jahre

  • OpenVPN-Client-Zertifikat: 1 Jahr

  • CRL: 1000 Tage

XCA-Templates für OpenVPN

Es macht Sinn, eine Root CA zu erzeugen, unter der eine OpenVPN CA angehängt ist (CA-Chain). Nur letztere stellt die Zertifikate für den OpenVPN-Server und die OpenVPN-Clients aus.

In XCA erzeugt man dazu vier Templates, mit deren Hilfe sich später die Zertifikate erzeugen lassen:

  • Root CA-Zertifikat (LF_Root_CA_Template)

  • OpenVPN CA (LF_OpenVPN_CA_Template)

  • OpenVPN Server (LF_OpenVPN_Server_Template)

  • OpenVPN Client (LF_OpenVPN_Client_Template)

LF_Root_CA_Template

Tab Templates > New Template. Dann:

Tab Subject:

  • Internal Name: LF_Root_CA_Template

  • countryName: CH

  • stateOrProvinceName: ZH

  • localityName: Zurich

  • organizationName: Linuxfabrik GmbH

  • organizationalUnitName: Secure Services

  • commonName: leer lassen

  • emailAddress: info@linuxfabrik.ch

Tab Extensions:

  • Type: Certificate Authority

  • Path length: leer lassen, Critical: yes

  • Key identifier > X509v3 Subject Key Identifier: yes

  • Time range: 10 Years

Tab Key Usage:

  • X509v3 Key Usage: Certificate Sign, CRL Sign

Tab Netscape:

  • Netscape Cert Type: SSL CA, S/MIME CA, Object Signing CA

LF_OpenVPN_CA_Template

Tab Templates > New Template. Dann:

Tab Subject:

  • Internal Name: LF_OpenVPN_CA_Template

  • countryName: CH

  • stateOrProvinceName: ZH

  • localityName: Zurich

  • organizationName: Linuxfabrik GmbH

  • organizationalUnitName: Secure Services

  • commonName: leer lassen

  • emailAddress: info@linuxfabrik.ch

Tab Extensions:

  • Type: Certificate Authority

  • Path length: 0 (ist eine Sub-CA!), Critical: yes

  • Key identifier > X509v3 Subject Key Identifier: yes

  • Time range: 10 Years

Tab Key Usage:

  • nichts

Tab Netscape:

  • nichts

LF_OpenVPN_Server_Template

Tab Templates > New Template. Dann:

Tab Subject:

  • Internal Name: LF_OpenVPN_Server_Template

  • countryName: CH

  • stateOrProvinceName: ZH

  • localityName: Zurich

  • organizationName: Linuxfabrik GmbH

  • organizationalUnitName: Secure Services

  • commonName: leer lassen

  • emailAddress: info@linuxfabrik.ch

Tab Extensions:

  • Type: End Entity

  • Path length: leer lassen, Critical: yes

  • Key identifier > X509v3 Subject Key Identifier: yes

  • Time range: 3 Years

Tab Key Usage:

  • X509v3 Key Usage: Digital Signature, Key Encipherment

  • X509v3 Extended Key Usage: TLS Web Server Authentication

Tab Netscape:

  • Netscape Cert Type: SSL Server

LF_OpenVPN_Client_Template

Tab Templates > New Template. Dann:

Tab Subject:

  • Internal Name: LF_OpenVPN_Client_Template

  • countryName: CH

  • stateOrProvinceName: ZH

  • localityName: Zurich

  • organizationName: Linuxfabrik GmbH

  • organizationalUnitName: Secure Services

  • commonName: leer lassen

  • emailAddress: info@linuxfabrik.ch

Tab Extensions:

  • Type: End Entity

  • Path length: leer lassen, Critical: yes

  • Key identifier > X509v3 Subject Key Identifier: yes

  • Time range: 365 Days

Tab Key Usage:

  • X509v3 Key Usage: Digital Signature

  • X509v3 Extended Key Usage: TLS Web Client Authentication

Tab Netscape:

  • nichts

OpenVPN-Zertifikate mit XCA ausstellen

Root CA erstellen

Tab Certificates > New Certificate. Dann:

Tab Source:

  • Signature algorithm: SHA 384

  • Template for the new certificate: LF_Root_CA_Template > Apply all

Tab Subject:

  • Internal Name: LF Root CA SHA 384

  • commonName: leer lassen

  • Private key: Generate a new key (Keytype: RSA, Keysize: 4096 bit, Remember as default: checked) > Create

Rechte Maustaste auf das neue Zertifikat > CA > Properties:

  • Days until next CRL issuing: 1000 days

  • Default template: LF_OpenVPN_CA_Template

OpenVPN CA-Zertifikat erstellen

Tab Certificates > Klick auf „LF Root CA SHA 384“ > New Certificate. Dann:

Tab Source:

  • Signature algorithm: SHA 384

  • Template for the new certificate: LF_OpenVPN_CA_Template > Apply all

Tab Subject:

  • Internal Name: LF OpenVPN CA SHA 384

  • commonName: Linuxfabrik OpenVPN CA SHA 384

  • Private key: Generate a new key (Keysize: 4096 bit, Remember as default: checked)

  • Bei Meldung „The certificate will be longer valid than the signer. This is probably not what you want“ > „Adjust date and continue“

Rechte Maustaste auf das neue Zertifikat > CA > Properties:

  • Days until next CRL issuing: 1000 days

  • Default template: LF_OpenVPN_Client_Template

OpenVPN Server-Zertifikat ausstellen

Tab Certificates > Klick auf „LF OpenVPN CA SHA 384“ > New Certificate. Dann:

Tab Source:

  • Signature algorithm: SHA 384

  • Template for the new certificate: LF_OpenVPN_Server_Template > Apply all

Tab Subject:

  • Internal Name: Hostname (FQDN) des OpenVPN-Servers

  • commonName: Hostname (FQDN) des OpenVPN-Servers

  • Private key: Generate a new key (Keysize: 4096 bit - Remember as default: checked)

OpenVPN Client-Zertifikat ausstellen

Tab Certificates > Klick auf „LF OpenVPN CA SHA 384“ > New Certificates

Tab Source:

  • Signature algorithm: SHA 384

  • Template for the new certificate: LF_OpenVPN_Client_Template > Apply all

Tab Subject:

  • Internal Name: E-Mail-Adresse

  • commonName: E-Mail-Adresse

  • Generate a new key (4096 bit)

Export:

  • Export Format: PKCS#12 chain (p12)

  • Für Kundenzertifikate mindestens ein 40-stelliges alphanumerisches Passwort vergeben (muss nicht notiert werden). Dieses via Infomaniak kpaste privat in Rocketchat zustellen.

OpenVPN Client-Zertifikat erneuern

Rechte Maustaste auf das zu erneuernde Zertifikat > Renewal:

  • Time Range: 1 Jahr

  • Haken bei „Revoke old certifikate“ setzen + ok

Export:

  • Export Format: PKCS#12 chain (p12)

  • Für Kundenzertifikate mindestens ein 40-stelliges alphanumerisches Passwort vergeben (muss nicht notiert werden). Dieses via Infomaniak kpaste privat in Rocketchat zustellen.

Rechte Maustaste auf „LF OpenVPN CA SHA 384“ > CA > Generate CRL:

  • 1000 days

  • Hash algorithm: SHA 384

CRL auf das Zielsystem hochladen (z.B. bei den OpenVPN-Servern als /etc/openvpn/server/crl.pem, abhängig von deren Konfiguration) und openvpn Server auf dem Zielsystem neu starten systemctl restart openvpn-server@server.service