Bash script to generate and install Let’s Encrypt certificate for your websites on your free/paid ServerPilot account. Currently, the only easy way to add SSL to your ServerPilot-powered websites is by subscribing to the paid plan.

How to install

  • ssh to your server, sudo su to act as root
  • Copy to your /usr/local/bin foldercd /usr/local/bin && wget sudo chmod +x to make it executable

How to use

  • Run anywhere from your console as root
  • Follow the on-screen instructions

Why root?

This script updates/create script in the /etc/nginx-sp that requires root access

IF things go wrong

  • Check /var/log/letsencrypt for detailed error messages
  • ssh to your sp server as root
    cd /etc/nginx-sp/vhosts.d
  • List all the ssl config files
    ls *ssl*
  • Delete the <appname>.ssl.conf that is causing problem

Restart nginx sudo service nginx-sp restart

Schedule auto renewal

Add the following to your crontab (crontab -e)

For Ubuntu 14.04

0 */12 * * * /usr/local/bin/certbot-auto renew --quiet --no-self-upgrade --post-hook "service nginx-sp reload"

For Ubuntu 16.04

0 */12 * * * letsencrypt renew && service nginx-sp reload

For Ubuntu 18.04

0 */12 * * * letsencrypt renew && service nginx-sp reload


  • This script assumes that you did not change your default ServerPilot installation folder
  • When entering your domain names, please list the primary root domain name first
  • To force HTTPS on your website, please follow instructions here
  • To redirect www to non-www or non-www to www on your website, please follow instructions here
  • Obey/observe the rate limits. Read the full documentation on the Let’s Encrypt website for more information.


Please enter your comment!
Please enter your name here