Substituindo Certificado Autoassinado
Substituindo o Certificado Autoassinado pelo Certificado PKCS para Acesso Externo
O certificado autoassinado incorporado usado para acesso externo de um navegador ao Gerenciador ou para a API REST ao Controlador pode ser substituído por um certificado PKCS suportado. Esses devem ser substituídos tanto nas implantações do Gerenciador quanto do Controlador. Nota: Para substituir os certificados incluídos para comunicação interna entre o Controlador, Aplicador e Scanner, consulte esta seção.
O console web SUSE® Security suporta 2 tipos diferentes de certificados autoassinados, especificamente, o PKCS8 (Padrão de Sintaxe de Informação de Chave Privada) e PKCS1 (Padrão de Criptografia RSA). O certificado autoassinado pode ser substituído por qualquer um desses tipos PKCS.
Os passos para gerar o segredo que será consumido pelo console web de SUSE® Security, originado da chave e do certificado usando qualquer um dos métodos PKCS, serão ilustrados abaixo. A nota importante aqui é que, com o uso do curinga para o DNS como parte do parâmetro de nome-alternativo durante a criação da chave e do certificado, isso permite que o nome de sua escolha seja mapeado para o endereço IP do console de Gerenciamento sem restringir a um CN específico.
Gerar e Usar Certificado Autoassinado PKCS8 ou PKCS1
-
Criar uma chave e um certificado
-
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 = * -
-
Criar o segredo a partir dos arquivos de chave e certificado gerados acima
kubectl create secret generic https-cert -n neuvector --from-file=tls.key --from-file=tls.pem -
Editar o yaml diretamente para as implantações do Gerenciador e Controlador para adicionar as montagens
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-certOu atualizar com o helm chart com um values.yaml semelhante
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.pemEntão atualize com
helm upgrade -i neuvector …. Para referência, aqui estão todos os valores https://github.com/neuvector/neuvector-helm/tree/master/charts/core.
Suporte a certificados encadeados
Para suportar TLS de ponta a ponta, alguns ingressos/Gateways de Aplicação só suportarão servidores de backend que podem ser confiáveis. SUSE® Security adicionou suporte a certificados encadeados na versão 3.2.2. O Gateway de Aplicativo da Microsoft é um exemplo de um Gateway de Aplicativo que requer um certificado encadeado ao usar uma CA não bem conhecida.
Para adicionar um certificado encadeado, o arquivo de exemplo tls.pem deve ser uma concatenação dos certificados.