Serverpilot Let's Encrypt
Forked and modified from lesaff's code, to account for different serverpilot folder structure
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
sple.sh
to your/usr/local/bin
foldercd /usr/local/bin && wget https://raw.githubusercontent.com/richardhawthorn/serverpilot-letsencrypt/master/sple.sh
- Run
sudo chmod +x sple.sh
to make it executable
How to use
- Run
sple.sh
anywhere from your console as root - Follow the on-screen instructions
root
?
Why 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
Notes
- This script assumes that you keep your site files in /var/sites
- 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.