Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

60 lines
1.9KB

  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. for domain in ${DOMAINS}; do
  14. for server_name in ${NEXTCLOUD_SERVER_NAME} ${GOGS_SERVER_NAME}; do
  15. _URL=${server_name}.${domain};
  16. echo ${_URL}
  17. HAPROXY_CERTS="${HAPROXY_CERTS} crt /etc/letsencrypt/haproxy/${_URL}.pem";
  18. if [[ ! -s /etc/letsencrypt/haproxy/${_URL}.pem ]]; then
  19. # Query Let's Encrypt
  20. certbot certonly -d ${_URL} \
  21. --email ${ADMIN_EMAIL} --non-interactive --agree-tos \
  22. --standalone --http-01-port=${LETSENCRYPT_PORT}
  23. if [ $? -eq 0 ]; then
  24. cat /etc/letsencrypt/live/${_URL}/fullchain.pem \
  25. /etc/letsencrypt/live/${_URL}/privkey.pem \
  26. > /etc/letsencrypt/haproxy/${_URL}.pem
  27. fi
  28. fi
  29. done
  30. done
  31. #sed -i "s/\${NEXTCLOUD_URL}/${NEXTCLOUD_URL}/g" $CFG_FILE
  32. #sed -i "s/\${GOGS_URL}/${GOGS_URL}/g" $CFG_FILE
  33. sed -i "s/\${NEXTCLOUD_SERVER_NAME}/${NEXTCLOUD_SERVER_NAME}/g" $CFG_FILE
  34. sed -i "s/\${GOGS_SERVER_NAME}/${GOGS_SERVER_NAME}/g" $CFG_FILE
  35. echo sed -i "s/\${HAPROXY_CERTS}/${HAPROXY_CERTS}/g" ${CFG_FILE}
  36. sed -i "s/\${HAPROXY_CERTS}/${HAPROXY_CERTS//\//\\/}/g" ${CFG_FILE}
  37. cat ${CFG_FILE}
  38. echo Killing haproxy `cat /tmp/haproxy.pid`
  39. kill -SIGTERM `cat /tmp/haproxy.pid`
  40. rm /tmp/haproxy.pid
  41. # Create renew cron job
  42. mv /usr/local/bin/letsencrypt.cron /etc/cron.monthly/letsencrypt
  43. # remove default cron job
  44. mv /etc/cron.d/certbot /tmp
  45. service cron status || service cron start
  46. # Start HAProxy
  47. haproxy -f $CFG_FILE