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:
mkdir /etc/openldap/certs pwgen -sy 32 1 > /etc/openldap/certs/password
certutil -d /etc/openldap/certs -N -f /etc/openldap/certs/password
head -c 1024 /dev/urandom > /tmp/noise.txt
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.
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
chmod 440 /etc/openldap/certs/password chown ldap. /etc/openldap/certs/*
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.
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.
mkdir /etc/openldap/certs openssl rand -base64 32 > /etc/openldap/certs/password
cd /etc/openldap/certs
openssl genrsa -aes256 -passout file:/etc/openldap/certs/password -out ca-key.pem 4096
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"
openssl genrsa -aes256 -passout file:/etc/openldap/certs/password -out server-key.pem 4096
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"
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")
chmod 440 /etc/openldap/certs/password chown ldap:ldap /etc/openldap/certs/*
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.