Quero que meu aplicativo seja executado em um cluster Kubernetes e use o certificado montado em um volume definido no meu arquivo deployment.yaml.
Não estou usando o ingress, em vez disso, configurei meu serviço como um LoadBalancer. Não consigo descobrir como fazer esse serviço lidar com a terminação tls. Então, segui o outro caminho, onde devo montar e usar o certificado dentro do pod.
Eu montei um segredo que contém as informações do certificado dentro do arquivo deployment.yaml dos aplicativos. O pod está instalado e funcionando e encontrou esse segredo com sucesso. O único problema é que o servidor web não está configurado para usar o certificado, então meu site não está disponível. Como posso configurar o servidor web para usar o certificado? Ele pode ser definido dentro do comando no arquivo docker?
O servidor web está em execução: npm run preview
Verificando o arquivo package.json, isto é: "preview": "vite preview"
Posso configurar o vite para usar certificados armazenados dentro do contêiner do kubernetes? É possível definir isso no meu dockerfile?
seção de implantação que montou o certificado
volumeMounts:
- name: cert-volume
mountPath: "/etc/ssl/certs"
readOnly: true
volumes:
- name: cert-volume
secret:
secretName: my-secret
Verifiquei online e não vejo muita maneira de fazer meu servidor web npm usar esse certificado para terminação TLS. Suspeito de algo que eu possa adicionar ao package.json ou diretamente no dockerfile para apontar para esse diretório dentro do meu contêiner kubernetes.
Alguém tem alguma configuração semelhante ou experiência fazendo isso?
Para ViteJS, você precisa configurar
server.https
a opção conforme indicado em https://vitejs.dev/config/server-options.html#server-httpsNo mínimo, você precisa passar a chave e o certificado para essa opção, conforme demonstrado em https://nodejs.org/api/https.html#httpscreateserveroptions-requestlistener .
Exemplo:
Como você está usando o Vite como seu servidor web, você precisará fazer algumas configurações específicas para o Vite. E o servidor do Vite pode ser configurado para usar TLS/SSL modificando seu vite.config.js e, no entanto, você precisa especificar o caminho para seu certificado. Consulte esta documentação oficial para configurar o Vite , incluindo as opções do servidor.
E já que o servidor web está rodando: npm run preview a maneira mais fácil é usar o pacote vite-plugin-mkcert . Abaixo está o comando para isso,
Uma vez feito isso, seu vite.config.js ficará assim:
Depois disso, ele instalará um certificado local no seu sistema e em vários navegadores instalados.
Você também pode iniciar seu servidor Vite com o comando abaixo:
$ npm executar dev -- --host
Isso passa o sinalizador --host para a linha de comando do vite. Você verá uma saída como esta: