Vamos criptografar o certificado e o NGINX - Não é possível encontrar um certificado ou uma diretiva chave

3

Meu servidor é executado em um LEMP Stack Ubuntu 16.04 e na última versão do nginx

Já tenho um certificado SSL instalado no meu servidor para os seguintes domínios e subdomínios: example.com , domain1.example.com e tudo está funcionando bem.

O que eu tento conseguir

Gostaria de criar um novo certificado para domain2.example.com

Para fazer isso, eu tentei este comando:

sudo certbot --nginx -d example.com -d domain1.example.com -d domain2.example.com --expand

Mensagem de erro

Cannot find a cert or key directive in /etc/nginx/sites-enabled/example.com for set(['www.example.com', '*.example.com', 'example.com']). VirtualHost was not modified.

config nginx

server {

   # SSL configuration

   listen 443 ssl http2 default_server;
   listen [::]:443 ssl http2 default_server;
   include snippets/ssl-example.com.conf;
   include snippets/ssl-params.conf;


    root /var/www/laravel/public;
    index index.php index.html index.htm;


    server_name example.com *.example.com www.example.com ;
}

Perguntas

O que estou fazendo de errado? Como posso recriar o certificado para adicionar o domain2 ?

    
por Leo 26.07.2017 / 04:10

3 respostas

0

Aqui está o que eu tive que fazer.

  1. Primeiro, encontre os certificados existentes digitando certbot certificates
  2. Em seguida, identifique o certificado que você deseja expand
  3. Atualize o certificado digitando sudo certbot certonly --cert-name example.com -d example.com -d domain1.example.com -d domain2.example.com --expand .
  4. Selecione 2: Place files in webroot directory (webroot)
  5. Insira o novo webroot , que foi para mim /var/www/laravel
por 27.07.2017 / 00:48
0

Para mim, entrei na pasta /etc/nginx/sites-enabled e excluí os arquivos de host virtuais com erro de sym que eu achava ter deletado anteriormente. Surpresa, eles ainda estavam lá. Portanto, certifique-se de fazer sudo rm -rf [filename] nessa pasta. Em seguida, reinicie o nginx por meio de sudo nginx -s reload e execute o comando certbot novamente e seja GTG.

    
por 13.08.2017 / 03:34
0

Uma das melhores maneiras é usar o plugin webroot (descrito link ). Eu aconselho seguir o seguinte caminho:

  1. Adicione a seguinte diretiva de localização aos hosts (blocos de servidores), que você deseja processar pelo certbot e obtenha certificados para isso:

    location /.well-known {
        root /usr/share/nginx/html;
    }
    
  2. Instale o certbot

  3. Exec certbot certonly command
  4. Siga as instruções. Escolha "webroot way" de autenticação (2ª opção). E quando você pediu por www-root para seu domínio, digite /usr/share/nginx/html (como na raiz da diretiva location).
  5. Quando tudo estiver terminado, você poderá encontrar certificados em /etc/letsencrypt/live/youdomain.com/fullchain.pem .
  6. Adicionar ao bloco do servidor:

    ssl on;
    ssl_certificate /etc/letsencrypt/live/youdomain.com/fullchain.pem;
    ssl_certificate_key    /etc/letsencrypt/live/youdomain.com/privkey.pem;
    

Isso é tudo;) Depois disso, você pode renovar facilmente os certificados executando o comando certbot renew .

Como funciona?

Quando adicionamos a diretiva de localização, selecionamos a pasta raiz personalizada para /.well-known location. O Certbot cria arquivos dentro dos arquivos de verificação do diretório .well-known e do servidor de autenticação externo (ACME CA) dentro dessa pasta. Se você gerencia muitos domínios ou usa nginx como proxy (!) É muito útil usar uma raiz comum para /.well-known location porque nesse caso você pode não ter nenhum diretório raiz na máquina com nginx (por exemplo você tem nginx instalado em um VPS como um proxy para o Apache instalado em outro VPS).

Boa sorte.

    
por 13.08.2017 / 11:24