Certificado HTTPS¶
Enquanto não houver um certificado pendurado numa das suas portas, o streamer serve HTTP simples. Esta página percorre todo o caminho de uma máquina crua até um https:// funcionando — e passa pelas razões de a emissão não começar.
Os certificados moram nos streamers, e cada um emite o seu: o central não guarda chaves privadas alheias. O que se configura aqui é o documento de configurações do streamer, então ele sobrevive a uma reinstalação da máquina.
O que é preciso antes de começar¶
O Let's Encrypt não emite nada enquanto as três condições não valerem:
- Um nome de domínio. O ACME não emite para um IP pelado —
https://45.41.213.34não se obtém de nenhuma CA pública. É preciso um nome que você controle. - DNS já apontando para este streamer. A autoridade certificadora resolve o nome e conecta a quem responder. Aponte o registro A/AAAA para a máquina antes de pedir o certificado, não depois.
- A porta 443 acessível pela internet. É aqui que mais se erra, então vale ser exato sobre como a validação funciona.
O Catena valida com TLS-ALPN-01: a prova é servida dentro do handshake TLS, na mesma porta que carrega o tráfego. Daí duas consequências:
- A porta 80 não é necessária de forma alguma. Não há rota HTTP de desafio, nada a abrir, nada a redirecionar. Se a intuição diz «o Let's Encrypt precisa da porta 80» — esse é outro tipo de desafio, e não é o usado aqui.
- A porta tem de ser a 443. A CA de produção só executa TLS-ALPN-01 contra a porta 443. Um certificado configurado em 8443 nunca será emitido: fica em «emitindo» sem erro, porque a CA jamais chega até ele. O formulário avisa disso, mas é a forma mais comum de travar.
O TLS-ALPN-01 também não sobrevive a um proxy que termine TLS na frente do streamer: o handshake precisa chegar ao próprio streamer.
Ativar a emissão automática aceita em seu nome o acordo de assinante do Let's Encrypt; o streamer registra uma conta ACME na primeira vez que pede.
Emitir um certificado Let's Encrypt¶
Abra o streamer a partir do registro e desça até a seção Certificados no pé do cartão.

Clique em Ativar HTTPS. Uma única ação percorre toda a cadeia de pré-requisitos: adiciona um listener na porta 443 e pendura nele uma entrada Let's Encrypt. O certificado sempre mora numa porta — por isso o listener vem primeiro, e por isso o botão o cria por você.
Agora preencha a entrada:

- Domínios — separados por vírgula. São os nomes que o certificado vai cobrir, e por eles os clientes o escolhem via SNI. Sob o campo o formulário sugere o hostname dos endereços do próprio streamer; é uma sugestão e se aplica só ao clicar, então um campo vazio significa honestamente que o nome ainda não foi definido.
- E-mail de contato ACME — obrigatório. Sem ele nada é emitido, e o botão Salvar alterações continua inativo. A CA também envia para lá os avisos de expiração.
Deixe Avançado em paz: uma URL do diretório ACME vazia significa o Let's Encrypt de produção.
A fila de portas acima mostra o resultado — um chip marcado tls é uma porta que carrega certificado:

Clique em Salvar alterações. As configurações viajam até a máquina; a trilha de aplicação mostra até onde chegaram.
Conferir o resultado¶
O estado da emissão aparece ao lado da própria entrada e se repete no cartão de certificados no topo. Três estados, e eles não se sobrepõem:
- emitindo — o pedido está em curso. Normal nos primeiros segundos após salvar.
- emitido — com o prazo restante; duas semanas antes de expirar a linha fica amarela. A renovação é automática e troca o certificado sem re-vincular a porta, então nada cai.
- falhou — com o motivo, literal da CA.

Uma entrada cujo certificado ainda não foi emitido não serve nada: o handshake para seus domínios é recusado em vez de responder com um certificado errado.
Mandar os espectadores por https¶
O certificado na porta não muda sozinho os endereços entregues aos players. Se a URL pública de payload em Conexão e entrega ainda for http://, os espectadores continuam sendo mandados em texto claro e o certificado fica sem uso — o formulário diz isso abertamente. Troque essa base para https:// com o nome que o certificado cobre.
O mesmo vale para a URL da API do streamer: depois do primeiro certificado convém passar também as chamadas do próprio central para https://.
O seu próprio certificado¶
Escolha PEM estático como fonte da entrada quando o certificado vier de outro lugar — a sua CA corporativa, uma paga, ou um wildcard que você mesmo obteve.
Ambos os campos aceitam ou o texto PEM inteiro, ou um caminho para um arquivo no streamer:
- Cole o PEM e o central o distribui às máquinas. É assim que um único certificado wildcard se espalha por muitos streamers, e é a única maneira de usar um wildcard aqui: o ACME só os emite por DNS-01, e o Catena não faz isso.
- Informe caminhos e o streamer lê os arquivos do disco. Rotacione-os com Ansible ou com o que for; o streamer os relê sem reiniciar e sem derrubar conexões.
Repare no que colar o PEM implica: a chave privada passa a morar no documento de configurações do streamer e a API a devolve inteira na leitura. Acesso de leitura a esse documento equivale a acesso de escrita à configuração — trate-o de acordo.
Um certificado autoassinado para bancada¶
Autoassinado faz o streamer gerar o certificado sozinho. Não precisa de DNS, nem de porta acessível, nem de CA, então é o jeito de experimentar TLS numa rede interna onde o ACME é indisponível por princípio. Os clientes vão mostrar um aviso de confiança — isso é esperado, e é por isso que não é opção de produção.
Um certificado autoassinado nunca substitui uma emissão do Let's Encrypt que falhou. A falha continua sendo uma falha visível, em vez de degradar em silêncio para um aviso a cada espectador.
Limites que vale conhecer¶
O Let's Encrypt permite 50 certificados por registered domain a cada 7 dias, e o limite é contado globalmente entre todas as contas. Cada streamer emitir o seu não escapa disso: cem streamers sob um mesmo example.com batem no teto já na primeira implantação, e ele se repõe a cerca de sete por dia. As renovações em regime estável — uma dúzia por semana para um cluster desses — ficam bem abaixo.
Se a primeira implantação for maior que o limite:
- obtenha você mesmo um certificado wildcard e distribua-o como PEM estático;
- ou aponte o campo URL do diretório ACME para outra CA — é um caminho suportado, não uma gambiarra;
- ou peça ao Let's Encrypt um aumento de limite, semanas antes da implantação.
Para bancadas use a chave CA de teste (staging) em Avançado: emite um certificado não confiável, mas não gasta o limite de produção. Trocar de CA reinicia a emissão do zero — a conta e o material são guardados por URL de diretório, então uma conta de staging nunca chega à CA de produção.
Uma consequência de escolher o certificado por SNI: não há certificado padrão. Uma requisição à porta TLS por endereço IP, ou com um nome desconhecido, tem o handshake recusado. Verificações de saúde que sondam a porta por IP param de funcionar — aponte-as para um nome que o certificado cubra.
Quando a emissão não começa¶
Preso em «emitindo» para sempre. Por ordem de probabilidade: a entrada não está na porta 443; o DNS do domínio não resolve para este streamer; a porta 443 está fechada por fora; algo termina TLS na frente do streamer.
O salvamento é recusado. Uma entrada letsencrypt sem e-mail de contato é recusada inteira — o streamer responde que o listener «has a letsencrypt tls entry but no acme section is configured». Preencha o e-mail. Duas entradas numa mesma porta reivindicando o mesmo domínio também são recusadas, assim como uma entrada estática com certificado mas sem chave privada.
A própria porta é recusada. O erro aparece ao lado da porta que o causou. A causa habitual é uma porta já ocupada por outro processo na máquina.
O console parou de abrir depois de ativar HTTPS. O documento de configurações é dono da lista de portas por inteiro: assim que ele contém um listener, a porta inicial da máquina deixa de valer. Se todas as portas HTTP da lista carregam TLS, o HTTP simples para de responder — e na máquina que roda o central o console é servido justamente dessas portas. O formulário avisa quando não sobra nenhuma porta simples na lista; mantenha a porta HTTP simples ao lado da 443, a menos que você queira deliberadamente só HTTPS.
O certificado está emitido mas os espectadores continuam indo por http. Os endereços de entrega são independentes do certificado — veja Mandar os espectadores por https.