最近のGoogleは、常時SSL(HTTPS)を推奨していたり、各種サービスなどを利用する際にもHTTPでのアクセスを拒否するなど、この業界に関わっていく限りはSSL(HTTPS)対応は避けて通れないだろうと思う今日この頃。
そして、このサイトの運営にはQNAPのNASをサーバとして利用しているのですが、これが思っていた以上の曲者で単にSSLを設定するだけの作業なのに数日かかってしまうとは思ってもいなかった…
というわけで、せっかく苦労したので忘れないようにQNAPのSSL化の作業手順を備忘録として残しておこうと思います。
今回判明したQNAPのSSL対応の問題点と対処法の一部(対処法の書かれていない問題は今回対処することを諦めたので、対処法を確認していません)
- Webの管理画面からLet’s Encryptの中間証明書がアップロードできない。(これは明らかなバグだろ!)
# cat privkey.pem fullchain.pem > /etc/stunnel/stunnel.pem # cp chain.pem /etc/stunnel/uca.pem
- SSL化した仮想ホストに中間証明書が設定されない。(実サーバは正しく設定されているので、これも明らかなバグだろ!)
/etc/config/apache/extra/httpd-ssl-vhosts-user.conf
の各仮想ホストの設定に以下の一行を追加する。SSLCertificateChainFile "/etc/stunnel/uca.pem"
- メールサーバ(XMail)などのサードパーティアプリをApp Centerからインストールしても、システムにインストールされている証明書を参照していない。
# cp privkey.pem ${QPKG_BASE}/.qpkg/XMail_phpxmail/MailRoot/server.key # cp fullchain.pem ${QPKG_BASE}/.qpkg/XMail_phpxmail/MailRoot/server.cert
- 一部のシステムアプリで証明書の参照先がマスターファイル(stunnel.pemとuca.pem)でなく、バックアップファイル(backup.keyとbackup.pem)になっている。
- CA証明書が一つも入っていない。(もうここまで来ると対応するのも面倒になって、放置プレイにすることにして対策するのは止めました)