Skip to content

Conversation

@saulocastrodev
Copy link

Pull Request: Geração e Instalação de Certificado SSL para Companion Server (YTM Desktop)

Este PR implementa as seguintes funcionalidades no projeto YouTube Music Desktop (YTM Desktop):


✨ Funcionalidades

1. Geração Automática de Certificado SSL (localhost + IP local)

  • Cria uma Autoridade Certificadora (CA) local.
  • Gera um certificado assinado para localhost e o IP local.
  • Armazena os arquivos em:
    ~/.config/YouTube Music Desktop App/certs/
    
  • Certificados gerados:
    • cert.pem
    • key.pem
    • ca.pem

2. Flag Persistente no memoryStore

  • Seta a flag ssl_cert_generated = true diretamente no memoryStore após geração.
  • Essa flag é lida na interface (Vue) para exibir ou ocultar opções SSL.

3. Rota para download da CA via HTTP

  • Um pequeno servidor HTTP é iniciado na porta 9862, que serve:
    • /setup: página com instruções
    • /ca.pem: download direto da CA

4. Correções:

  • MIME-Type corrigido: application/x-x509-ca-cert
  • Uso de fs.readFileSync para evitar erro de arquivo vazio
  • Detecção segura do IP local com fallback para localhost

5. Interface Vue Integrada (YTMDSetting.vue)

  • Mostra:
    • Botão "Gerar Certificado SSL" (se ainda não existir)
    • Link para baixar CA
    • Instruções detalhadas para instalar no navegador
  • Atualiza reativamente com base no memoryStore

🔧 Como testar

1. Rodar o app localmente

yarn start

2. Acessar a interface de configuração (Configurações do YTM Desktop)

  • Clique em "Gerar Certificado SSL"
  • Isso aciona a geração do certificado + CA local

3. Abrir o navegador e acessar:

http://localhost:9862/setup
  • Clique em "Baixar CA"

4. Instalar o certificado CA no navegador

Chrome/Chromium:

  1. Acesse chrome://settings/certificates
  2. Aba "Autoridades"
  3. Clique em "Importar" e selecione ca.pem
  4. Marque "Confiar para identificar sites"

Firefox:

  1. about:preferences > Privacidade e Segurança > Certificados > Ver Certificados
  2. Aba "Autoridades" > Importar
  3. Selecione o ca.pem

Linux (sistema):

sudo cp ~/.config/YouTube\ Music\ Desktop\ App/certs/ca.pem /usr/local/share/ca-certificates/myca.crt
sudo update-ca-certificates

macOS:

  1. Abrir "Acesso às Chaves"
  2. Ir em "Sistema" > Importar ca.pem
  3. Definir como "Confiar Sempre"

📆 Observação

A comunicação HTTPS com o Companion Server é feita em https://localhost:9863. Após a instalação correta da CA, navegadores e o Electron não emitirão mais erros de certificado.


🔐 Próximos passos (opcional)

  • Desligar o servidor HTTP de setup após instalação (ou torná-lo temporário)
  • Armazenar o certificado gerado em local compartilhado para atualização futura
  • Notificar interface via IPC diretamente (já previsto)

✅ PR pronto para revisão!

Caso deseje, posso também gerar um branch com esses ajustes para aplicação direta.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant