gen_certs.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. if [ ! -d 'certs' ]
  19. then
  20. mkdir certs
  21. fi
  22. CA_KEY="certs/CAself-key.pem"
  23. CA_INFO="certs/CAself.info"
  24. CA_CERT="certs/CAself-cert.pem"
  25. certtool --generate-privkey > "${CA_KEY}"
  26. cat > "${CA_INFO}" <<EOF
  27. cn = ${DOMAIN}
  28. ca
  29. cert_signing_key
  30. expiration_days = 8000
  31. EOF
  32. certtool \
  33. --generate-self-signed \
  34. --load-privkey "${CA_KEY}" \
  35. --template "${CA_INFO}" \
  36. --outfile "${CA_CERT}"
  37. chmod 0640 "${CA_KEY}"
  38. # Generate private key for LDAP service
  39. LDAP_TLS_KEY="certs/${SERVER}_slapd_key.pem"
  40. LDAP_TLS_INFO="certs/${SERVER}.info"
  41. LDAP_TLS_CERT="certs/${SERVER}_slapd_cert.pem"
  42. certtool --generate-privkey > "${LDAP_TLS_KEY}"
  43. cat > "${LDAP_TLS_INFO}" <<EOF
  44. organization = ${DOMAIN}
  45. cn = ${SERVER}
  46. tls_www_server
  47. encryption_key
  48. signing_key
  49. expiration_days = 8000
  50. EOF
  51. certtool \
  52. --generate-certificate \
  53. --load-privkey "${LDAP_TLS_KEY}" \
  54. --load-ca-certificate "${CA_CERT}" \
  55. --load-ca-privkey "${CA_KEY}" \
  56. --template "${LDAP_TLS_INFO}" \
  57. --outfile "${LDAP_TLS_CERT}"
  58. chmod 0640 "${LDAP_TLS_KEY}"
  59. cat > "certs/sourceme" <<EOF
  60. CA_KEY="certs/CAself-key.pem"
  61. CA_INFO="certs/CAself.info"
  62. CA_CERT="certs/CAself-cert.pem"
  63. LDAP_TLS_KEY="certs/${SERVER}_slapd_key.pem"
  64. LDAP_TLS_INFO="certs/${SERVER}.info"
  65. LDAP_TLS_CERT="certs/${SERVER}_slapd_cert.pem"
  66. EOF