Ersetzen des selbstsignierten Zertifikats
Ersetzen des selbstsignierten Zertifikats durch ein PKCS-Zertifikat für den externen Zugriff
Das integrierte selbstsignierte Zertifikat, das für den externen Zugriff von einem Browser auf den Manager oder für die REST-API zum Controller verwendet wird, kann durch ein unterstütztes PKCS-Zertifikat ersetzt werden. Diese sollten sowohl in den Manager- als auch in den Controller-Implementierungen ersetzt werden. Hinweis: Um die enthaltenen Zertifikate für die interne Kommunikation zwischen Controller, Enforcer und Scanner zu ersetzen, siehe bitte diesen Abschnitt.
Die SUSE® Security Web-Konsole unterstützt 2 verschiedene Typen von selbstsignierten Zertifikaten, nämlich PKCS8 (Private-Key Information Syntax Standard) und PKCS1 (RSA Cryptography Standard). Das selbstsignierte Zertifikat kann durch einen dieser PKCS-Typen ersetzt werden.
Die Schritte zur Generierung des Geheimnisses, das von der Web-Konsole von SUSE® Security verwendet wird und aus dem Schlüssel und dem Zertifikat unter Verwendung einer der PKCS-Methoden stammt, werden im Folgenden veranschaulicht. Der wichtige Hinweis hier ist, dass die Verwendung des Wildcard-Zeichens für die DNS als Teil des alternativen Subject-Name-Parameters während der Erstellung von Schlüssel und Zertifikat es ermöglicht, den von Ihnen gewählten Namen der IP-Adresse der Management-Konsole zuzuordnen, ohne auf ein bestimmtes CN beschränkt zu sein.
Generieren und Verwenden eines selbstsignierten Zertifikats PKCS8 oder PKCS1
-
Erstellen eines Schlüssels und Zertifikats
-
PKCS8
-
PKCS1
openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout tls.key -out tls.pem -config ca.cfg -extensions 'v3_req' Sample ca.cfg [req] distinguished_name = req_distinguished_name x509_extensions = v3_req prompt = no [req_distinguished_name] C = US ST = California L = San Jose O = {product-name} Inc. OU = Neuvector CN = Neuvector [v3_req] keyUsage = keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names] DNS.1 = *openssl genrsa -out tls.key 2048 openssl req -x509 -nodes -days 730 -config openssl.cnf -new -key tls.key -out tls.pem Sample openssl.cnf [req] distinguished_name = req_distinguished_name x509_extensions = v3_req prompt = no [req_distinguished_name] C = US ST = California L = San Jose O = {product-name} Inc. OU = Neuvector CN = Neuvector(PKCS#1) [v3_req] keyUsage = keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names] DNS.1 = * -
-
Erstellen des Geheimnisses aus den oben generierten Schlüssel- und Zertifikatdateien
kubectl create secret generic https-cert -n neuvector --from-file=tls.key --from-file=tls.pem -
Bearbeiten Sie die YAML-Datei direkt für die Manager- und Controller-Implementierungen, um die Mounts hinzuzufügen.
spec: template: spec: containers: volumeMounts: - mountPath: /etc/neuvector/certs/ssl-cert.key name: cert readOnly: true subPath: tls.key - mountPath: /etc/neuvector/certs/ssl-cert.pem name: cert readOnly: true subPath: tls.pem volumes: - name: cert secret: defaultMode: 420 secretName: https-certOder aktualisieren Sie mit dem Helm-Chart mit ähnlichen values.yaml
manager: certificate: secret: https-cert keyFile: tls.key pemFile: tls.pem ingress: enabled: true host: %CHANGE_HOST_NAME% ingressClassName: "" path: "/" # or this could be "/api", but might need "rewrite-target" annotation annotations: ingress.kubernetes.io/protocol: https tls: true secretName: https-cert controller: certificate: secret: https-cert keyFile: tls.key pemFile: tls.pemDann aktualisieren Sie mit
helm upgrade -i neuvector …. Zur Referenz hier sind alle Werte https://github.com/neuvector/neuvector-helm/tree/master/charts/core.
Unterstützung für verkettete Zertifikate
Um End-to-End-TLS zu unterstützen, unterstützen einige Ingresses/Gateways nur Backend-Server, die vertrauenswürdig sind. SUSE® Security hat die Unterstützung für verkettete Zertifikate in Version 3.2.2 hinzugefügt. Das Application Gateway von Microsoft ist ein Beispiel für ein Application Gateway, das ein verkettetes Zertifikat benötigt, wenn es eine nicht gut bekannte CA verwendet.
Um ein verkettetes Zertifikat hinzuzufügen, sollte die Beispiel-Datei tls.pem eine Verkettung der Zertifikate sein.