ひとまず構築できたNextcloud。
設定の「概要」を見ると”セキュリティ&セットアップ警告”が出ていて気持ち悪い。
あとブラウザのアドレス部分に「安全ではありません」と出るのが残念な感じ。
というわけでSSL対応をすることにした。
大まかな手順は以下の通り。
1. ポート開放
まずはルータのポート設定。
80番ポートと443ポートを開けて俺鯖に向くようにする。
(元々対応済み)
続いてFirewall。
当然80番ポートは開いているので443番ポートだけを開ける。
firewall-cmd --add-service=https --permanent firewall-cmd --reload
これで準備はOK。
2. SSL証明書取得
最初自分で証明書を発行する いわゆる「オレオレ証明書」にしようかと思ったんだけど
せっかくなのでちゃんと外部から取得しましょう。
個人の遊びサーバなので、ちゃんとした機関に頼むわけではなく、
フリーのLet's Encryptを使用する。
調べてみるとcertbotを入れて取得するのが簡単そうだ。
入れましょう。
yum install certbot
取得する方法は2つ。
- certbotのWebサーバ機能を使用して取得する(–standalone)
- 既存のWebサーバを使用して取得する(-webroot)
俺の場合は既にWebサーバが動いているので自動的に後者になる。
certbotのWebサーバを使う場合、既存のWebサーバを止めないといけない。
certbot certonly --webroot -w {Nextcloudを置いたサーバのフルパス} -d {適用する(サブ)ドメイン} -m {メールアドレス} --agree-tos
{Nextcloudを置いたサーバのフルパス}は、例えば/var/www/nextcloud
みたいな感じで。
成功すると/etc/letsencrypt/archive/{適用する(サブ)ドメイン}
にファイルが生成される。
ここ/etc/letsencrypt/live/{適用する(サブ)ドメイン}
にも。
証明書を更新するたびに枝番が付くので、常に最新ファイルを読めるように
live
の方にあるのはarchive
のシンボリックリンクになっている。
参考にしたサイトは自分でやっていたけど、最近のは自動でやってくれるのか。
有効期限は90日と短めなので、更新し忘れないようにシェルを作ってcronで回す。
/bin/certbot renew --webroot --post-hook /bin/systemctl reload httpd
こんなようなニュアンスで。(実際には他にログを出力したり細かいことをやっている)
3. Webサーバへの設定
httpdのサーバ設定の部分に追記(変更)
俺の場合はVirtualHostを別ファイルに分けているのでそっちを編集。
<VirtualHost ***.***.***.***:80>
ServerName {Nextcloudを設置する(サブ)ドメイン}
Redirect permanent / https://{Nextcloudを設置する(サブ)ドメイン}/
</VirtualHost>
<VirtualHost ***.***.***.***:443>
ServerName {Nextcloudを設置する(サブ)ドメイン}
DocumentRoot {Nextcloudを置いたサーバのフルパス}
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/{Nextcloudを設置する(サブ)ドメイン}/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/{Nextcloudを設置する(サブ)ドメイン}/privkey.pem
(略)
</VirtualHost>
な感じで。
httpで迷い込んできたらhttpsにリダイレクトしてあげるという親切設定(何
続いて/etc/httpd/conf.d/ssl.conf
を修正。
標準で<VirtualHost>
の設定があって、激しく邪魔なので削除。
消したらファイルサイズが1/5ぐらいになったw
SSLProtocol all -SSLv3 SSLProxyProtocol all -SSLv3 SSLCipherSuite PROFILE=SYSTEM SSLProxyCipherSuite PROFILE=SYSTEM SSLHonorCipherOrder On Header set Strict-Transport-Security "max-age=315360000;"
これを最後の方に追記。
あとは再読込をしてオシマイ。
systemctl reload httpd
4. で・・・
設定の「概要」に別のエラーが(ノ∀`)
memcacheがどうのこうの言われてる。
設定すると性能アップするっぽいので暇を見てやりましょう。
俺専用なので放っておいても全く問題ない。