Table of Contents

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

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

certutil -d /etc/openldap/certs -N -f /etc/openldap/certs/password

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

head -c 1024 /dev/urandom > /tmp/noise.txt

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

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

chmod 440 /etc/openldap/certs/password
chown ldap. /etc/openldap/certs/*

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

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

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

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"

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")

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

chmod 440 /etc/openldap/certs/password
chown ldap:ldap /etc/openldap/certs/*

9. Verificação dos Certificados

openssl x509 -in ca-cert.pem -text -noout
openssl x509 -in server-cert.pem -text -noout

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.