gen_certs.sh 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/bin/sh
  2. # Set the variables
  3. SERVER=${SERVER:-`hostname --fqdn`}
  4. DOMAIN=${SERVER#*.}
  5. LDAP_ROOT=""
  6. IFS="."
  7. for DC in $DOMAIN
  8. do
  9. LDAP_ROOT="${LDAP_ROOT},dc=$DC"
  10. done
  11. LDAP_ROOT="${LDAP_ROOT#,}"
  12. echo -e "
  13. \nServer: $SERVER
  14. \nDomain: $DOMAIN
  15. \nLDAP Root: $LDAP_ROOT
  16. "
  17. # Setup TLS certificate (self-signed) for LDAP
  18. CA_KEY=certs/CAself-key.pem
  19. CA_INFO=certs=certs/CAself.info
  20. CA_CERT=certs/CAself-cert.pem
  21. certtool --generate-privkey > $CA_KEY
  22. cat > $CA_INFO <<EOF
  23. cn = $DOMAIN
  24. ca
  25. cert_signing_key
  26. expiration_days = 8000
  27. EOF
  28. certtool \
  29. --generate-self-signed \
  30. --load-privkey $CA_KEY \
  31. --template $CA_INFO \
  32. --outfile $CA_CERT
  33. chmod 0640 $CA_KEY
  34. # Generate private key for LDAP service
  35. LDAP_TLS_KEY=certs/$SERVER_slapd_key.pem
  36. LDAP_TLS_INFO=certs/$SERVER.info
  37. LDAP_TLS_CERT=certs/$SERVER_slapd_cert.pem
  38. certtool --generate-privkey > $LDAP_TLS_KEY
  39. cat > $LDAP_TLS_INFO <<EOF
  40. organization = $DOMAIN
  41. cn = $SERVER
  42. tls_www_server
  43. encryption_key
  44. signing_key
  45. expiration_days = 8000
  46. EOF
  47. certtool \
  48. --generate-certificate \
  49. --load-privkey $LDAP_TLS_KEY \
  50. --load-ca-certificate $CA_CERT \
  51. --load-ca-privkey $CA_KEY \
  52. --template $LDAP_TLS_INFO \
  53. --outfile $LDAP_TLS_CERT
  54. chmod 0640 $LDAP_TLS_KEY