Eu resolvi esse problema usando esse parâmetro ao solicitar certificados
--standalone-supported-challenges http-01
Atualmente, estou executando alguns contêineres do Docker. Um para o nginx, um para o meu aplicativo de nó js e um último para criar e renovar certificações de criptografia. Isso funcionou muito bem durante algum tempo, mas estou com um problema.
Neste servidor eu tenho 5 domínios que todos os ssl instalados. Mas agora não posso instalar mais nenhum certificado. Eu entendo isso:
- The following errors were reported by the server:
Domain: domain1.com
Type: unauthorized
Detail: Incorrect validation certificate for tls-sni-01 challenge.
Requested
c7a966714b5363c594f152b27f947722.f767e462430a051872cd4eaab3969248.acme.invalid
from MY_IP:443. Received 2 certificate(s), first
certificate had names "domain0.com"
Depois de olhar em volta, vejo que, se eu for para " link ", sou recebido por uma mensagem de erro que diz:
Safari can't verify the identity of the website "domain1.com".
Quando clico em "Mostrar certificado", ele mostra o certificado de domain0.com
Aqui está a configuração de domain0.com
server {
listen 80;
server_name domain0.com;
location /.well-known/acme-challenge {
proxy_pass http://certbot:80;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto https;
}
location / {
return 301 https://$server_name$request_uri;
}
}
server {
listen 443;
server_name domain0.com;
client_max_body_size 50M;
ssl on;
ssl_certificate /etc/letsencrypt/live/domain0.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain0.com/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_dhparam /etc/ssl/private/dhparams.pem;
location /.well-known/acme-challenge {
proxy_pass http://certbot:443;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto https;
}
location / {
proxy_pass http://cldapi1:8080;
proxy_set_header Host $host;
proxy_set_header X-Protocol https;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
certbot é o link para o recipiente que permite criptografar e o cldapi1 é o link para o aplicativo do nó.
Eu acho que este é o servidor padrão porque é o primeiro bloco de servidor dentro da configuração do nginx. Mas quando eu tento criar um servidor padrão ssl ele não funciona porque eu não tenho certs para um servidor padrão, e se eu tivesse um que não funcionasse bem com criptografia.
Acho que preciso de uma maneira de não permitir que o servidor responda com um certificado ssl quando permitir a criptografia de um.
Se você tiver alguma sugestão ou dúvida, por favor me avise!
Estou executando o nginx versão 1.11.9 e o certbot versão 0.9.3
Tags ssl nginx docker lets-encrypt certbot