AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1162578
Accepted
ciro
ciro
Asked: 2024-07-16 04:48:27 +0800 CST2024-07-16 04:48:27 +0800 CST 2024-07-16 04:48:27 +0800 CST

vamos criptografar o problema de permissão do certificado com postgres

  • 772

Estou usando o certbot, no Ubuntu 22, para gerar certificado SSL. Tudo funciona bem, mas todos os certificados são gerados na seguinte pasta

/etc/letsencrypt/live/domain/cert.pem

O problema é que o usuário e o grupo são root. Se eu tentar usar um certificado para configurar o postgres para usar SSL, recebo um erro de permissão negada.

Eu evitaria copiar o certificado em outro diretório toda vez que fosse gerado. Existe uma maneira de alterar o grupo para gerar o certificado?

Atenciosamente

ubuntu
  • 1 1 respostas
  • 37 Views

1 respostas

  • Voted
  1. Best Answer
    Esa Jokinen
    2024-07-16T14:47:03+08:002024-07-16T14:47:03+08:00

    Geralmente, existem abordagens para que os serviços possam ler o certificado e a chave privada. A verdadeira preocupação é como manter a chave privada segura para que ninguém além dos serviços que a utilizam possa lê-la.

    1. Alguns serviços (por exemplo, Postfix) executam um processo mestre como root para se ligar a portas privilegiadas (<= 1024), bem como para ler segredos de arquivos de configuração, incluindo as chaves privadas. Eles então bifurcam processos sem privilégios para qualquer coisa que o serviço esteja fazendo.

    2. Alguns serviços (por exemplo, PostgreSQL) não executam nenhum dos seus processos como root. Portanto, eles não podem ler os arquivos em /etc/letsencrypt/live/, e os arquivos devem ser copiados para um local onde somente o serviço em questão possa lê-los.

    Como vários serviços podem precisar do mesmo certificado e chave privada, não é aconselhável alterar as permissões /etc/letsencrypt/live/diretamente, mas criar quantas cópias dos arquivos forem necessárias. Com Let's Encrypt, este não deve ser um processo manual, mas automatizado como ganchos de implantação (consulte Renovação de certificados ).

    Pavel Lazureykis escreveu um tutorial sobre certificados SSL automáticos para PostgreSQL ; as fases 10–12 instruem como construir o gancho de implantação:

    1. Vamos automatizar o processo de atualização de certificados. Criarei um novo script em /usr/bin/update_certs.sh:

      #!/bin/bash
      
      # Paths to certificate and key files
      CERTIFICATE="/etc/letsencrypt/live/pgtest.uptime-monitor.io/fullchain.pem"
      PRIVATE_KEY="/etc/letsencrypt/live/pgtest.uptime-monitor.io/privkey.pem"
      
      # Destination directory for PostgreSQL certificates 
      PG_CERT_DIR="/etc/postgresql/16/main"
      
      # Copy certificate and private key
      sudo cp "$CERTIFICATE" "${PG_CERT_DIR}/pgtest.crt"
      sudo cp "$PRIVATE_KEY" "${PG_CERT_DIR}/pgtest.key"
      
      # Set permissions and ownership for certificate and private key 
      sudo chmod 600 "${PG_CERT_DIR}/pgtest.crt"
      sudo chmod 600 "${PG_CERT_DIR}/pgtest.key"
      sudo chown postgres:postgres "${PG_CERT_DIR}/pgtest.crt"
      sudo chown postgres:postgres "${PG_CERT_DIR}/pgtest.key"
      
      # Force PostgreSQL to reload config:
      sudo -u postgres psql -c "SELECT pg_reload_conf();"
      
    2. Defina este script como executável:

      chmod +x /usr/bin/update_certs.sh
      
    3. Instale o script como um gancho no certbot. Ele será executado sempre que o certificado for atualizado pelo certbot:

      sudo certbot renew --force-renewal --deploy-hook /usr/bin/update_certs.sh
      
    • 1

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve