AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1164772
Accepted
elementmg
elementmg
Asked: 2024-08-23 06:51:51 +0800 CST2024-08-23 06:51:51 +0800 CST 2024-08-23 06:51:51 +0800 CST

Configuração para fazer com que o servidor web use certificados montados na implantação do kubernetes

  • 772
Esta pergunta foi migrada do Stack Overflow porque pode ser respondida no Server Fault. Migrada há 23 horas .

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?

docker
  • 2 2 respostas
  • 10 Views

2 respostas

  • Voted
  1. Best Answer
    Lukman
    2024-08-23T08:08:17+08:002024-08-23T08:08:17+08:00

    Para ViteJS, você precisa configurar server.httpsa opção conforme indicado em https://vitejs.dev/config/server-options.html#server-https

    No 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:

    import { defineConfig } from 'vite';
    import fs from 'fs';
    
    export default defineConfig({
      server: {
        https: {
          key: fs.readFileSync('/path/to/key.pem'),
          cert: fs.readFileSync('/path/to/cert.pem'),
        },
      },
    });
    
    • 1
  2. Imran Premnawaz
    2024-08-23T17:12:10+08:002024-08-23T17:12:10+08:00

    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,

    • npm em vite-plugin-mkcert -D

    Uma vez feito isso, seu vite.config.js ficará assim:

    import { defineConfig } from 'vite'
    import mkcert from 'vite-plugin-mkcert'
    
    export default defineConfig({
      server: { https: true }, // Not needed for Vite 5+
      plugins: [ mkcert() ]
    })
    

    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:

    vite v2.7.9 dev server running at:
    
      > Local:    http://localhost:3000/
      > Network:  http://192.168.4.68:3000/
    
      ready in 237ms.
    
    • 0

relate perguntas

  • Ainda confuso por que o docker funciona quando você faz um processo ouvir 0.0.0.0, mas não 127.0.0.1

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve