Acabei de atualizar isto, pois a versão antiga já não funcionava. Testei em dois sites, por isso acho que deve estar bom.
EDIT: Encontrei uma solução, ignore tudo abaixo, mas deixarei aqui para futuras referências. Deixarei a solução no final.
Acabei de encontrar este tópico. Então, meu site é: forums.mysite.me. Tenho 3 domínios na minha configuração NGINX e no meu provedor de domínio que estou usando DNS CNAME’s para que estão retornando como inseguros:
mysite.me
www.mysite.me
forum.mysite.me (sem o "s" se alguém errar a digitação ou adivinhar o URL)
Eu uso meu domínio base na configuração que está na postagem original? Ou como eu configuro para os 3?
after_ssl:
# diga ao letsencrypt quais certificados adicionais obter
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d forums.mysite.me --keylength"
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--fullchainpath/
to: "-d forums.mysite.me --fullchainpath"
Estou confuso porque a primeira seção “replace” tem um from: /--keylength/ e a de baixo tem from: /--fullchainpath/. Então, eu crio 2 entradas como essas para cada um desses 3 URLs que listei ou?.. Ou seria isso?
after_ssl:
# diga ao letsencrypt quais certificados adicionais obter
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d mysite.me -d www.mysite.me -d forum.mysite.me --keylength"
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--fullchainpath/
to: "-d mysite.me -d www.mysite.me -d forum.mysite.me --fullchainpath"
^ Sim, a caixa acima aqui foi a solução para múltiplos sites/LetsEncrypt. Tão animado.
Sim. Existem duas substituições diferentes no arquivo que precisam ser atualizadas com os nomes de host.
Não foi isso que a postagem no topo lhe deu quando você inseriu os nomes conforme descrito?
Como podemos editar o OP para que não seja confuso?
Pessoalmente, eu diria para mover isso para cima da caixa de entrada, para que você veja enquanto digita.
A postagem deu isso, sim, mas eu não entendi porque
Por que a seção “se você precisar adicionar vários domínios” que citei não responde a isso?
OK. Que tal isto:
e depois do código a ser copiado, continua:
Isso faz sentido?
Acho que é mais fácil colocar o código real com vários sites como o exemplo que usei acima:
after_ssl:
# diga ao letsencrypt quais certificados adicionais obter
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d mysite.me -d www.mysite.me --keylength"
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--fullchainpath/
to: "-d mysite.me -d www.mysite.me --fullchainpath"
Eu acho que a maioria das pessoas vai querer adicionar apenas um domínio extra, então meu método é mais fácil e fornece uma maneira simples de obter o texto exato que você precisa sem ter que fazer nenhuma edição.
Talvez ainda esteja claro que, se o seu site for discourse.y.com e você quiser certificados para discourse.y.com e y.com, você só precisa inserir y.com no campo “domain2” e clicar no ícone de cópia?
No seu exemplo, se você configurou seu Discourse para ser mysite.com, você não precisa da parte -d mysite.me no seu exemplo (ou se o seu site for www.mysite.me, você só precisa da parte -d mysite.me).
em qual arquivo este código está sendo adicionado, por favor?
O código deve ser adicionado perto do final do seu arquivo app.yml, na seção hooks:
18 posts foram divididos em um novo tópico: Let’s Encrypte com múltiplos domínios não estava funcionando para certificados ECC
Preciso ainda das outras duas substituições de trecho de código ou este novo trecho de código é tudo que preciso?
Adicionei e recompiliei, mas ainda recebo um erro de privacidade SSL ao acessar um dos domínios https que desejo redirecionar.
Ao olhar o certificado, seu nome comum é forum.domain.com, com O e OU não fazendo parte do certificado.
Estou tentando redirecionar https://domain.com e https://www.domain.com para https://forum.domain.com.
Ao usar http://domain.com e http://www.domain.com, ele redireciona corretamente para https://forum.domain.com.
O que você inseriu? Como fica sua seção after_ssl?
Parece com isto (Alterado o nome de domínio real)
after_ssl:
- replace:
filename: /etc/runit/1.d/letsencrypt
from: /-d forum.mydomain.com /
to: -d forum.mydomain.com -d www.mydomain.com -d mydomain.com
global: true
Também adicionei isto
LETSENCRYPT_ALTERNATE_NAMES: mydomain.com,www.mydomain.com
O erro do navegador é
net::ERR_CERT_COMMON_NAME_INVALID
Todos os nomes resolvem? Eles não têm Cloudflare na frente deles? Você atingiu limites de taxa? Você pode olhar no container e executar /etc/runit/1.d/letsencrypt para ver o que acontece
Todos os nomes são resolvidos, sem Cloudflare, as taxas de acerto devem ficar boas.
Aqui está o resultado da execução do letsencrypt;
(Nome de domínio substituído)
/var/www/discourse# /etc/runit/1.d/letsencrypt
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
[Tue Apr 29 04:02:13 PM UTC 2025] Unknown parameter : 4096
[Tue Apr 29 04:02:13 PM UTC 2025] Installing key to: /shared/ssl/forum.domain.com.key
[Tue Apr 29 04:02:13 PM UTC 2025] Installing full chain to: /shared/ssl/forum.domain.com.cer
[Tue Apr 29 04:02:13 PM UTC 2025] Run reload cmd: sv reload nginx
ok: run: nginx: (pid 429) 10662s
[Tue Apr 29 04:02:13 PM UTC 2025] Reload success
[Tue Apr 29 04:02:13 PM UTC 2025] Unknown parameter : ec-256
[Tue Apr 29 04:02:14 PM UTC 2025] Installing key to: /shared/ssl/forum.domain.com_ecc.key
[Tue Apr 29 04:02:14 PM UTC 2025] Installing full chain to: /shared/ssl/forum.domain.com_ecc.cer
[Tue Apr 29 04:02:14 PM UTC 2025] Run reload cmd: sv reload nginx
ok: run: nginx: (pid 429) 10663s
[Tue Apr 29 04:02:14 PM UTC 2025] Reload success
Eu olhei dentro do arquivo, aqui está um interessante
issue_cert() {
LE_WORKING_DIR="${LETSENCRYPT_DIR}" /shared/letsencrypt/acme.sh --issue $2 -d forum.domain.com -d www.domain.com -d domain.com--keylength $1 -w /var/www/discourse/public
}
Parece que falta um espaço entre o último domínio e --keylength?
domain.com--keylength
Corrigir isso resolveu o problema, obrigado pela ajuda
Presumo que a correção deva ser adicionar / ao campo to: também?
after_ssl:
- replace:
filename: /etc/runit/1.d/letsencrypt
from: /-d forum.domain.com /
to: "-d forum.domain.com -d www.domain.com "
global: true
Deveriam ser aspas, não barras. Editei sua postagem e a do OP. O que você tem agora deve funcionar.