Updated Synology NAS Guide (markdown)

Jonas Gröger 2017-08-15 11:54:05 +02:00
parent d66aed093d
commit 8ed0efcd74
1 changed files with 17 additions and 18 deletions

@ -13,7 +13,7 @@ The following guide will use the DNS-01 protocol using the [Cloudflare API](http
$ wget https://github.com/Neilpang/acme.sh/archive/master.tar.gz
$ tar xvf master.tar.gz
$ cd acme.sh-master/
$ ./acme.sh --install --nocron --home /usr/local/sbin/acme.sh
$ ./acme.sh --install --nocron --home /usr/local/share/acme.sh
## Configuring DNS
@ -27,24 +27,23 @@ In case you use another DNS service, check the `dnsapi` directory. Instructions
## Creating the certificate
Now it's time to create the certificate for your domain:
$ cd /usr/local/sbin/acme.sh
$ ./acme.sh --issue -d YOURDOMAIN.TLD --dns dns_cf \
$ cd /usr/local/share/acme.sh
$ export CERT_DOMAIN="your-domain.tld"
$ export CERT_DNS="dns_cf"
$ ./acme.sh --issue -d "$CERT_DOMAIN" --dns "$CERT_DNS" \
--certpath /usr/syno/etc/certificate/system/default/cert.pem \
--keypath /usr/syno/etc/certificate/system/default/privkey.pem \
--fullchainpath /usr/syno/etc/certificate/system/default/fullchain.pem \
--reloadcmd "/usr/syno/sbin/synoservicectl --reload nginx" \
--dnssleep 20
Please note, in this way it will replace/overwrite your Synology NAS system default certificate directly.
Please note that this will replace your Synology NAS system default certificate directly.
---------------------------------------------------------------------------------------------------------
**Below are optional steps!!!**
## Alternative method that preserves your Synology NAS system default certificate
Alternatively, you can change the certificates install path to your DSM cert library folder which will only replace the certificate you nominated, no impact to system default one.
For example:
$ export CERT_FOLDER="$(find /usr/syno/etc/certificate/_archive/ -maxdepth 1 -mindepth 1 -type d)"
$ # Make sure $CERT_FOLDER is only one name. Else you have to manually specify the folder.
$ export CERT_DOMAIN="your-domain.tld"
$ export CERT_DNS="dns_cf"
$ ./acme.sh --issue -d "$CERT_DOMAIN" --dns "$CERT_DNS" \
@ -61,12 +60,12 @@ To auto renew the certificates in the future, you need to configure the cronjob.
Configure crontab for root
$ vi /etc/crontab
$ vim /etc/crontab
Add the following line to the crontab. Remember to use tab for spacing.
For example, 10:00 am of the 2nd day every month run the cronjob to check if due to renew the certificates (You can modify the cronjob schedule according to your needs)
0 10 2 * * root /usr/local/sbin/acme.sh/acme.sh --cron --home /usr/local/sbin/acme.sh/
0 10 2 * * root /usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh/
The last step is to setup a schedule task to copy renewed certificates in cert library to system default directory and restart the Nginx service.
@ -76,19 +75,19 @@ In DSM control panel, open the 'Task Scheduler' and create a new scheduled task
* Schedule: Setup the time according to your acme.sh crontab schedule. For example, 11:00 am of the 2nd day every month.
* Task setting: User-defined-script
rsync -avzh /usr/syno/etc/certificate/_archive/**vPATH**/ /usr/syno/etc/certificate/system/default/`
# Note: The $CERT_FOLDER must be hardcoded here since the running environment is unknown. Don't blindly copy&paste
rsync -avzh "$CERT_FOLDER" "/usr/syno/etc/certificate/system/default/"
/usr/syno/sbin/synoservicectl --reload nginx
/usr/syno/etc/rc.sysv/nginx.sh reload
Now you should all good.
Now you should be all good.
--------------------------------------------------------------------------------------------------------------------
To fix the broken environment after Synology DSM upgrade, you can
$ cd /urs/local/sbin/acme.sh
$ ./acme.sh --upgrade --nocron --home /usr/local/sbin/acme.sh
$ cd /urs/local/share/acme.sh
$ ./acme.sh --upgrade --nocron --home /usr/local/share/acme.sh
or manually add below line into /root/.profile
. "/usr/local/sbin/acme.sh/acme.sh.env"
. "/usr/local/share/acme.sh/acme.sh.env"