User Tools

Site Tools


wikiv2:ldap_make_certificate

Configuração de certificado para um servidor OpenLDAP

Os comandos fornecidos são parte de um processo para configurar certificados SSL/TLS para um servidor OpenLDAP, utilizando a ferramenta certutil para gerenciar certificados. Vou analisar cada comando para explicar o que eles fazem:

certutil

1. Criação do diretório e geração da senha

mkdir /etc/openldap/certs
pwgen -sy 32 1 > /etc/openldap/certs/password
  • mkdir /etc/openldap/certs: Cria um diretório para armazenar os certificados e a senha do OpenLDAP.
  • pwgen -sy 32 1: Gera uma senha segura de 32 caracteres que inclui símbolos e salva no arquivo especificado. Esta senha será usada para proteger a chave privada do certificado.

2. Inicialização do repositório de certificados

certutil -d /etc/openldap/certs -N -f /etc/openldap/certs/password
  • certutil -d /etc/openldap/certs -N: Cria um novo repositório de certificados no diretório especificado.
  • -f /etc/openldap/certs/password: Usa o arquivo de senha para acessar ou criar o banco de dados de certificados.

3. Geração de ruído para aleatoriedade

head -c 1024 /dev/urandom > /tmp/noise.txt
  • Gera 1024 bytes de dados aleatórios de /dev/urandom e salva em /tmp/noise.txt, usado posteriormente como fonte de entropia na criação do certificado.

4. Criação do certificado da Autoridade Certificadora (CA)

certutil -S -n LDAP-CA -t "C,C,C" -x \
    -f /etc/openldap/certs/password \
    -d /etc/openldap/certs \
    -z /tmp/noise.txt \
    -s "CN=LDAP-CA,OU=IT,O=Company,L=City,ST=State,C=NL" \
    -v 120 \
    -Z SHA256 \
    -g 4096

certutil -S: Cria um novo certificado. -n LDAP-CA: Nome do certificado. -t “C,C,C”: Define as regras de confiança para o certificado (aqui, confiado para tudo). -z /tmp/noise.txt: Usa o arquivo de ruído como fonte de entropia. -s “CN=…“: Especifica o sujeito do certificado. -v 120: Define a validade do certificado para 120 meses. -Z SHA256: Usa SHA-256 como algoritmo de hash. -g 4096: Gera uma chave de 4096 bits.

5. Criação do certificado do servidor OpenLDAP

certutil -S -n 'OpenLDAP Server' -t ",," \
    -c LDAP-CA \
    -f /etc/openldap/certs/password \
    -d /etc/openldap/certs \
    -z /tmp/noise.txt \
    -s "CN=OpenLDAP Server,OU=IT,O=Company,L=City,ST=State,C=NL" \
    -8 "ldap.domain.tld,ldap.mgmt.domain.tld-example!" \
    -v 36 \
    -Z SHA256 \
    -g 4096
  • Semelhante ao comando anterior, mas cria um certificado para o servidor LDAP específico, referenciando a CA criada no passo anterior.
  • -8 “ldap.domain.tld,…“: Inclui nomes alternativos para o certificado.

6. Alteração das permissões de arquivos e diretórios

chmod 440 /etc/openldap/certs/password
chown ldap. /etc/openldap/certs/*
  • chmod 440: Define as permissões de leitura para o usuário e grupo do arquivo de senha.
  • chown ldap.: Muda a propriedade de todos os arquivos no diretório para o usuário e grupo ldap.

7. Verificação e listagem dos certificados

certutil -L -d /etc/openldap/certs/
certutil -K -d /etc/openldap/certs/ -f /etc/openldap/certs/password
certutil -L -d /etc/openldap/certs/ -n LDAP-CA
certutil -V -d /etc/openldap/certs -n "OpenLDAP Server" -u C
  • Várias operações de certutil para listar, verificar e validar os certificados e chaves no repositório.

Esses comandos representam uma configuração completa de certificados para um servidor OpenLDAP, utilizando práticas seguras de gestão de chaves e certificados.

OpenSSL

O OpenSSL é uma ferramenta poderosa e flexível que é frequentemente usada para criar certificados e gerenciar chaves públicas e privadas. Abaixo, segue um processo detalhado para criar um certificado de Autoridade Certificadora (CA) e um certificado de servidor usando o OpenSSL, similar ao que você descreveu para o certutil.

1. Criação do diretório e geração da senha

mkdir /etc/openldap/certs
openssl rand -base64 32 > /etc/openldap/certs/password
  • Criação do diretório: Armazena os certificados e chaves.
  • Geração de senha: Gera uma senha segura e a salva em um arquivo.

2. Preparação para criação de chaves e certificados

cd /etc/openldap/certs

3. Criação da chave privada da CA

openssl genrsa -aes256 -passout file:/etc/openldap/certs/password -out ca-key.pem 4096
  • genrsa: Gera uma chave RSA.
  • aes256: Utiliza a criptografia AES-256 para proteger a chave.
  • passout file: Especifica o arquivo que contém a senha para a chave privada.
  • 4096: Tamanho da chave em bits.

4. Criação do certificado da CA

openssl req -new -x509 -days 3650 -key ca-key.pem -sha256 -out ca-cert.pem -passin file:/etc/openldap/certs/password \
-subj "/C=NL/ST=State/L=City/O=Company/OU=IT/CN=LDAP-CA"
  • req -new -x509: Cria um novo pedido de assinatura de certificado (CSR) e o auto-assina, tornando-o um certificado CA.
  • days 3650: Validade do certificado (10 anos).
  • sha256: Usa SHA-256 como o algoritmo de hash.
  • subj: Linha de comando para preencher o campo de assunto do certificado.

5. Criação da chave privada do servidor LDAP

openssl genrsa -aes256 -passout file:/etc/openldap/certs/password -out server-key.pem 4096

6. Criação do CSR (Pedido de Assinatura de Certificado) para o servidor LDAP

openssl req -new -key server-key.pem -out server-csr.pem -passin file:/etc/openldap/certs/password \
-subj "/C=NL/ST=State/L=City/O=Company/OU=IT/CN=OpenLDAP Server"

7. Assinatura do CSR com a CA criada

openssl x509 -req -days 1095 -in server-csr.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial \
-out server-cert.pem -passin file:/etc/openldap/certs/password -extensions v3_req -extfile <(echo "subjectAltName=DNS:ldap.domain.tld,DNS:ldap.mgmt.domain.tld")
  • x509 -req: Usa o CSR para criar um certificado.
  • days 1095: Validade do certificado (3 anos).
  • CAcreateserial: Cria um arquivo de número serial se não existir.
  • subjectAltName: Adiciona nomes alternativos ao certificado.

8. Mudança de permissões e propriedade dos arquivos

chmod 440 /etc/openldap/certs/password
chown ldap:ldap /etc/openldap/certs/*
  • Ajusta as permissões para que apenas o usuário e grupo `ldap` possam ler os arquivos críticos.

9. Verificação dos Certificados

openssl x509 -in ca-cert.pem -text -noout
openssl x509 -in server-cert.pem -text -noout
  • x509 -text: Exibe o conteúdo dos certificados.

Este conjunto de comandos cobre a geração de chaves e certificados para uma CA e um servidor LDAP usando o OpenSSL, proporcionando uma configuração segura similar à que seria feita com certutil.

wikiv2/ldap_make_certificate.txt · Last modified: by 127.0.0.1