QNAPに構築したWebサーバにSSL証明書(Let's Encrypt)を導入する手順を記載する。
名前解決できない場合は、/etc/hostsに設定するドメイン名とQNAPのIPアドレスを記載します。
※ここ大事です、気づかずはまりました。
こちらのサイトを参考にしてください。
こちらのサイトの解説になります。
GitHubにある、qnap-letsencryptというツールを利用しています。
mkdir qnap-letsencrypt
curl --silent https://curl.haxx.se/ca/cacert.pem | sha1sum curl --silent --location --remote-name --insecure https://curl.haxx.se/ca/cacert.pem sha1sum cacert.pem #ハイライト行実行後の結果で、ハッシュ値がコンソールに表示されるので一致していることを確認します。
git config --system http.sslVerify true git config --system http.sslCAinfo `pwd`/cacert.pem git clone https://github.com/Yannik/qnap-letsencrypt.git mv cacert.pem qnap-letsencrypt cd qnap-letsencrypt git config --system http.sslCAinfo `pwd`/cacert.pem
sh init.sh
#ドメインが1つの場合は以下を、「nas.xxx.de」の部分は自身のドメインに書き換えます。 openssl req -new -sha256 -key letsencrypt/keys/domain.key -subj "/CN=nas.xxx.de" > letsencrypt/domain.csr #ドメインが2つの場合は以下を、「nas.xxx.de」「nas.xxx.com」の部分は自身のドメインに書き換えます。 cp openssl.cnf letsencrypt/openssl-csr-config.cnf printf "subjectAltName=DNS:nas.xxx.de,DNS:nas.xxx.com" >> letsencrypt/openssl-csr-config.cnf openssl req -new -sha256 -key letsencrypt/keys/domain.key -subj "/" -reqexts SAN -config letsencrypt/openssl-csr-config.cnf > letsencrypt/domain.csr
#以降の手順で失敗した場合、Webサーバが起動失敗することがあります。 #その際は、cp /etc/stunnel/stunnel.pem.orig /etc/stunnel/stunnel.pem で復旧できます。 mv /etc/stunnel/stunnel.pem /etc/stunnel/stunnel.pem.orig
sh renew_certificate.sh
echo "30 3 * * * [qnap-letsencryptディレクトリパス]/renew_certificate.sh >> [qnap-letsencryptディレクトリパス]/renew_certificate.log 2>&1" >> /etc/config/crontab crontab /etc/config/crontab /etc/init.d/crond.sh restart