No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

63 líneas
2.0KB

  1. #!/bin/bash
  2. CFG_FILE=/etc/haproxy/haproxy.cfg
  3. CFG_LE_FILE=/etc/haproxy/haproxy_letsencrypt.cfg
  4. LETSENCRYPT_PORT=8888
  5. mkdir -p /etc/letsencrypt/haproxy
  6. # Let's Encrypt
  7. # Following these instructions:
  8. # https://serversforhackers.com/c/letsencrypt-with-haproxy
  9. # Start temporary HAProxy
  10. haproxy -f $CFG_LE_FILE -D -p /tmp/haproxy.pid
  11. # Get Let's Encrypt certificates
  12. HAPROXY_CERTS=""
  13. SERVER_NAMES="${NEXTCLOUD_SERVER_NAME} ${GITEA_SERVER_NAME} ${HAUK_SERVER_NAME}"
  14. #echo Server names: $SERVER_NAMES
  15. for domain in ${DOMAINS}; do
  16. for server_name in ${SERVER_NAMES}; do
  17. _URL=${server_name}.${domain};
  18. echo ${_URL}
  19. HAPROXY_CERTS="${HAPROXY_CERTS} crt /etc/letsencrypt/haproxy/${_URL}.pem";
  20. if [[ ! -s /etc/letsencrypt/haproxy/${_URL}.pem ]]; then
  21. # Query Let's Encrypt
  22. certbot certonly -d ${_URL} \
  23. --email ${ADMIN_EMAIL} --non-interactive --agree-tos \
  24. --standalone --http-01-port=${LETSENCRYPT_PORT}
  25. if [ $? -eq 0 ]; then
  26. cat /etc/letsencrypt/live/${_URL}/fullchain.pem \
  27. /etc/letsencrypt/live/${_URL}/privkey.pem \
  28. > /etc/letsencrypt/haproxy/${_URL}.pem
  29. fi
  30. fi
  31. done
  32. done
  33. #sed -i "s/\${NEXTCLOUD_URL}/${NEXTCLOUD_URL}/g" $CFG_FILE
  34. #sed -i "s/\${GITEA_URL}/${GITEA_URL}/g" $CFG_FILE
  35. sed -i "s/\${NEXTCLOUD_SERVER_NAME}/${NEXTCLOUD_SERVER_NAME}/g" $CFG_FILE
  36. sed -i "s/\${GITEA_SERVER_NAME}/${GITEA_SERVER_NAME}/g" $CFG_FILE
  37. sed -i "s/\${HAUK_SERVER_NAME}/${HAUK_SERVER_NAME}/g" $CFG_FILE
  38. #echo sed -i "s/\${HAPROXY_CERTS}/${HAPROXY_CERTS}/g" ${CFG_FILE}
  39. sed -i "s/\${HAPROXY_CERTS}/${HAPROXY_CERTS//\//\\/}/g" ${CFG_FILE}
  40. #cat ${CFG_FILE}
  41. echo Killing haproxy `cat /tmp/haproxy.pid`
  42. kill -SIGTERM `cat /tmp/haproxy.pid`
  43. rm /tmp/haproxy.pid
  44. # Create renew cron job
  45. mv /usr/local/bin/letsencrypt.cron /etc/cron.monthly/letsencrypt
  46. # remove default cron job
  47. mv /etc/cron.d/certbot /tmp
  48. service cron status || service cron start
  49. # Start HAProxy
  50. haproxy -f $CFG_FILE