Questão Vamos criptografar + certbot: onde está a chave privada


Eu tenho usado openssl para criar chave e certificado para o meu site. O que funciona bem, mas leva a reclamações do navegador.

Agora gostaria de migrar para o Let's Encrypt para obter um certificado adequado.

A configuração foi muito simples, instalei o certbot e segui o tutorial em seu site.

Fiquei surpreso ao ler isso certbot é suposto ser usado com uma bandeira certonly. Intuitivamente, isso deve significar que apenas um certificado é criado. Ele deve me perguntar por uma chave existente durante a configuração. O que não é, em vez disso, cria um novo certificado e uma nova chave.

sudo certbot certonly --standalone -d xxxx

...

Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0000_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0000_csr-certbot.pem

....

Mas esta chave parece não existir. Se eu digitar o caminho no meu servidor, ele se queixa de não encontrar a chave.

Eu tive problemas com permissões de leitura no meu certificado, resolvido por esta questão: https://serverfault.com/questions/773440/lets-encrypt-ssl-certificate-file-not-found-error-but-still-working

A solução foi mudar os direitos de acesso.

Mas estou hesitante em fazer isso com minha chave privada. A segurança da Internet é tão complexa que, na verdade, não conheço as consequências da alteração de permissões em relação a algo tão importante quanto a chave privada.

Como devo usar o certificado recém-gerado? Onde posso encontrar a chave privada correspondente e tenho que aplicar configuração adicional?


5


origem


O que quer que esteja tentando usar sua chave precisa ser capaz de ler sua chave. Não há absolutamente nenhuma maneira de contornar isso. - Daniel B
Certbot certonly na verdade significa "é só pegar um certificado mas não configurá-lo", ao contrário de certbot run que na verdade configura o Apache para você. (Muitos usuários, inclusive eu, prefeririam evitar a edição automatizada de configurações - e é claro que nem todo mundo usa o Apache ou o nginx também). - grawity


Respostas:


Ignorar a csr e keys dirs; eles basicamente contêm apenas arquivos temporários durante a emissão.

Certbot sempre coloca a última versão de todos os certificados sob /etc/letsencrypt/live:

/ etc / letsencrypt / live
Mail── mail.example.org
Cert ├── cert.pem -> ../../archive/mail.example.org/cert8.pem
Chain ├── chain.pem -> ../../archive/mail.example.org/chain8.pem
Full ├── fullchain.pem -> ../../archive/mail.example.org/fullchain8.pem
Priv └── privkey.pem -> ../../archive/mail.example.org/privkey8.pem
Ex── www.example.org
    Cert── cert.pem -> ../../archive/www.example.org/cert7.pem
    Chain── chain.pem -> ../../archive/www.example.org/chain7.pem
    Full── fullchain.pem -> ../../archive/www.example.org/fullchain7.pem
    Priv── privkey.pem -> ../../archive/www.example.org/privkey7.pem

Portanto, você configuraria serviços como este:

SSLCertificateFile     /etc/letsencrypt/live/www.example.org/fullchain.pem
SSLCertificateKeyFile  /etc/letsencrypt/live/www.example.org/privkey.pem

Desta forma, os serviços só precisam ser recarregados, não reconfigurados, após cada renovação. Use o recurso "deploy hook" do certbot para automatizar as mudanças de permissão, recarregamentos de serviço e qualquer outra coisa que precise ser automatizada.


9