====== 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.