Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

48 rindas
1.3KB

  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. sed -i "s/\${NEXTCLOUD_URL}/${NEXTCLOUD_URL}/g" $CFG_FILE
  7. sed -i "s/\${GOGS_URL}/${GOGS_URL}/g" $CFG_FILE
  8. # Let's Encrypt
  9. # Following these instructions:
  10. # https://serversforhackers.com/c/letsencrypt-with-haproxy
  11. # Start temporary HAProxy
  12. haproxy -f $CFG_LE_FILE -D -p /tmp/haproxy.pid
  13. # Get Let's Encrypt certificates
  14. for _URL in ${NEXTCLOUD_URL} ${GOGS_URL}; do
  15. if [[ ! -s /etc/letsencrypt/haproxy/${_URL}.pem ]]; then
  16. # Query Let's Encrypt
  17. certbot certonly -d ${_URL} \
  18. --email ${ADMIN_EMAIL} --non-interactive --agree-tos \
  19. --standalone --http-01-port=${LETSENCRYPT_PORT}
  20. if [ $? -eq 0 ]; then
  21. cat /etc/letsencrypt/live/${_URL}/fullchain.pem \
  22. /etc/letsencrypt/live/${_URL}/privkey.pem \
  23. > /etc/letsencrypt/haproxy/${_URL}.pem
  24. fi
  25. fi
  26. done;
  27. echo Killing haproxy `cat /tmp/haproxy.pid`
  28. kill -SIGTERM `cat /tmp/haproxy.pid`
  29. rm /tmp/haproxy.pid
  30. # Create renew cron job
  31. mv /usr/local/bin/letsencrypt.cron /etc/cron.monthly/letsencrypt
  32. # remove default cron job
  33. mv /etc/cron.d/certbot /tmp
  34. service cron status || service cron start
  35. # Start HAProxy
  36. haproxy -f $CFG_FILE