【鯖機】ネットワーク ストレージ サービス (2) Nextcloud SSL化

ひとまず構築できたNextcloud。

 

【鯖機】ネットワーク ストレージ サービス (1)

 

設定の「概要」を見ると”セキュリティ&セットアップ警告”が出ていて気持ち悪い。

あとブラウザのアドレス部分に「安全ではありません」と出るのが残念な感じ。

 

 

 

 

というわけでSSL対応をすることにした。

 

大まかな手順は以下の通り。

  1. ポート開放
  2. SSL証明書取得
  3. Webサーバへの設定
  4. で・・・

 

 

 

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つ。

  1. certbotのWebサーバ機能を使用して取得する(–standalone)
  2. 既存の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がどうのこうの言われてる。

設定すると性能アップするっぽいので暇を見てやりましょう。

俺専用なので放っておいても全く問題ない。

 

 

カテゴリー: Web, ソフトウェア, ハードウェア, 技術的 タグ: , , , ,  [パーマリンク]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です