DuckDnsでopenmediavaultをSSL化してみた

openmediavault

先日、ブログのコメント欄にてopenmediavault(omv)のssl化のご意見いただきました。ありがとうございます。個人的にはあまり利点を感じなかったのですが、調べてみると意外と情報が少なかったのでトライしてみました。

結論から言うと、できたものの、かなりハマったので参考にしてください。

omvをインストールして稼働している前提です。

sslではなくダイナミックDNSで公開

ダイナミックDNSと呼ばれるサービスの中で、コメント欄にもあったようにduckdnsを利用しました。

このサービスは通常は有料である固定IPアドレスの代わりに、動的なIPアドレスが変更しても同じドメインで運用できるようにしてくれるサービスです。有料もありますが、duckdnsは無料です。

ssl化に対応する前に、omvをduckdnsで外に公開してみます。

duckdnsで取得したアドレスでomvへアクセスできるかということです。

手順としてはほぼこの動画の手順通りです。非常に分かり易いです。

ここではomvのプラグインとしてDockerとShellboxをインストールするとありますが、Shellboxはインストールしなくて良いです。何故なら日本語環境では文字が2重に打ち込まれてしまい、全く意味を成しません。

多重文字

修正も何も面倒なので、Macからrootでssh接続して対応しました。

Dockerがインストールできたら同じ作者の動画で、これまたほぼそのまま参考にします。

動画を何回も見直して行えば間違いないと思います。

下図のように設定します。(一部伏せています)

環境変数

PUID、PGIDは設定するユーザーから。私の場合は1001と100でした。

TZはタイムゾーンです。大文字小文字などよく分かりませんけど、取りあえずJAPAN/Tokyoとしました。

duckdns-top

SUBDOMAINSは、duckdnsで取得した任意の文字列です。(○○.duckdns.orgの○○部分

TOKENは、DuckDNSのトップページにログインすれば出ています。

この段階まではomv側のプラグインで大丈夫です。Dockerで入れたDuckdnsのプラグインで登録したドメインの「○○○.duckdns.org」で外部から接続可能です。

Wi-Fi内だと異なりますので、iPhoneなりスマホの4G接続でアクセスしてみてください。omvの管理画面へのログイン画面が出てくればOKです。

SSL化

いよいよ、ssl化です。これは別の動画で非常に分かり易いのがあり、一部変更すればそのまま使えそうだったので参考にしました。

これはopenmediavaultではないので、読み替える必要はあるものの、90%はそのままです。何度も観ました!他のサイトの情報も参考にし、自分の環境に読み替える必要があるため、そのままその通りではダメです。

やり直しもできます。ただ、何度も予習した方が良いでしょう。

ハマりポイント!

実はかなりハマったのが、動画の3:40付近から始まる実際の作業の最初であるサービスの停止です。この動画では、ホームアシスタントというサービスを稼働させていますので、それを停止しているのですけど、これはTCPポート80番を使用しているから止めています。

認証を取得する際にTCP80番ポートがバッティングする(バインドする)ため正常に実行できないからです。

実は、同じようにエラーが出ました。

しかし、TCP80番ポートは何も使っていないかと思っていたら、openmediavaltでは標準でサーバーであるnginxが動いていて、それがTCPポート80番を使っています。

nginx-stop

どのプロセスが使用しているか調べるコマンドはこちら。(TCPポート80番)

lsof -i:80

接続待ちをしている(LISTEN)TCP、UDPポートを表示するにはこちら

ss -antu
netstat -antu

既に通信が確立しているtcpポートの状況を調べるにはこちら

ss -t
netstat -t

参考:https://qiita.com/sonoshou/items/cc2b740147ba1b8da1f3

調べると確かにnginxが表示されますね。

そうか、と思ってnginxを停止するコマンドを打ちます。

systemctl stop nginx

そして再び認証を取得する長いコマンドを実行しても、またバインドエラー・・・。ん?

もしやと思ってステータスを確認すると・・・。

systemctl status nginx

停止していないでactiveのままじゃーないですか?!

どうやらアプリとしてサービスとしてデーモンとして、masterプロセスとworkerプロセスと止め方にも色々あるそうな。

ちょっと色んな停止を試してみた。結果としては止まったものの、最終的にどれが有効か分からない・・・。

systemctl stop nginx.service (サービスの停止)

nginx -s stop (デーモンの停止)

/etc/init.d/nginx stop (フルパスで)

nginxについてこちらのサイトがオススメです。とても詳しく載っていました。

https://qiita.com/u310ai/items/3b99b2dfb4897ca83374

何度かstatusを確認して止まっていることを確認してから、認証を取得するコマンドを打ったらイケました!

verifi-ok

成功すると、/etc/letsencrypt/の中に、以下のファイル群が出来上がっています。

accounts  archive  csr keys  live  renewal  renewal-hooks

そして、その中のliveの中に、○○.duckdns.orgがあり、更にその中に以下のファイル群が出来ています。

cert.pem chain.pem fullchain.pem privkey.pem README

これらpemが認証ファイルになります。

最後にスタートさせます。

systemctl start nginx

NginxでのSSLの設定方法

ここでサーバーとして稼働しているNginxにsslの設定をしないとなりません。他にApacheなど他のサーバーで動かすならその設定ファイルになります。openmediavaultではNginxがサーバーなので、そこに認証ファイル(.pemなど)の場所を指定します。

nginx.confにsslの設定を追記する。

sudo nano /etc/nginx/nginx.conf
##
# SSL Settings
##

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
server {
    listen 443;
    ssl on;
    server_name ○○.duckdns.org;
    ssl_certificate /etc/letsencrypt/live/○○.duckdns.org/fullchain.pem; # サーバー証明書のパス
    ssl_certificate_key /etc/letsencrypt/live/○○.duckdns.org/privkey.pem; # 秘密鍵のパス

    location / {
    }
}

※いつものごとく、スペースは適時合わせてください。

○○.duckdns.orgは自分の環境に合わせてください。

エラーがないか確認

記述した内容が間違っている場合はエラー行が表示されますので、以下コマンドでテストします。

nginx -t

エラーが無ければ以下でリロードして設定を読み込み直しします。

systemctl reload nginx

こちらに詳しく載っていました。感謝です。

https://qiita.com/katsunory/items/97f5a4738863776fbaf4

https://qiita.com/HeRo/items/f9eb8d8a08d4d5b63ee9

https://qiita.com/mt08/items/e95acfcb3d503242e2fb

\ Raspberry Pi 4はメモリー8GBが最新 /

【セット概要】「データーベース」「Webサーバー」「NAS」「AI処理」「4K画像での2画面処理」などの高負荷がかかる処理を、長時間稼働させるのに必要な負荷テスト行い、当社で厳選した高品質なパーツを組み合わせたセットです。高品質なAnker製USB電源の採用、トラブルの原因になりやすい電源周りをデジタルモニターリングできるをType-Cケーブル、Raspberry財団認定モデル 高速タイプ 100MB/sec 128GB MicroSD、静音FANによる強制冷却など、高負荷運用でも長期に渡る安定稼働が可能です。また単品でご購入いただくよりお得です。

sslで接続OK

これでsslで接続が可能になりました。

iPhoneなり外部から「https://○○.duckdns.org」でアクセスすると、鍵マークが付きます。

ssl-ok-iphone

あと、Lets Encrypt証明書は有効期限が90日しかないので、crontabに記述します。

crontab -e

以下を追記する。(毎月1日の4:00に更新)

0 4 1 * * root /bin/systemctl stop nginx && /usr/local/src/certbot/certbot-auto renew --force-renewal && /bin/systemctl start nginx

参考:https://sys-guard.com/post-14859/

最後に

sslで接続したのはnginxのhtmlです。あとは、openmediavaultで共有しているファイルに対してsslで接続するには別の設定が必要です。

どれが一番簡単で分かり易いのかちょっと検討しています。

それでもあまり利点がないなーと思ったのは、一時的ならDropboxでもGoogleドキュメントでも代替のサービスがあります。遠隔の操作ならVPNを張るソフトが楽です。

一頃と違って安価で利用できるサービスが面倒もないのでオススメします。

しかし、Raspberry Pi でもここまでできるので、面白い使い方があったらできるように知っておくのはアリですね。

ただ、他の人のようにSynology社のNASを購入した方が何かと簡単で便利かも知れない・・・。

国内正規代理店取り扱い品+各種(電話/メール)サポート対応。こちらの商品にはHDDの付属はござません。別途HDDをご用意ください。

2ベイ(HDD2台)でも安くなったからなー。HDDだって3TBが軽く1万円切っているし・・・。

こういった構築が難しいなーと思ったら、既製品の方がとっても幸せになります。次のセールで買おうかなと本末転倒に思ってます。

Raspberry Pi はもっとエンタメ系の方が楽しいですね!

ラズパイダ

ラズパイダ

学べる楽しむ便利になる。小さいくせにヤケにパワフル。そんなRaspberry Pi をまだ知らない人に伝えたい。様々な場所で利用されているRaspberry Pi を知って「あっ、これもラズパイだっ!」だからラズパイダ!

関連記事

特集記事

コメント

    • hiro-pon
    • 2019.02.21

    たいへん参考になりました。ありがとうございます。

最近の記事 はじめて向け
  1. Pimoriniからシンプルスーパースリムな「Audio DAC SHIM」

  2. Raspberry Pi OS のバージョンアップ方法とaptについて

  3. 遊び半分、学び半分でRaspberry Piを活用しよう!

  4. Raspberry Pi Imager更新、イメージ選択数を計測のためデータ収集も

  5. 「fre:ac」はラズパイでもmp3やFLACに変換できる無料のオーディオコンバーター

  1. 【初心者向け】Raspberry Pi 4との接続方法(電源、HDMI)

  2. 【初心者向け】はじめてRaspberry Pi OS をダウンロードする人へ

  3. Raspberry Pi OS のインストールは、公式ツール1つだけでOK

おすすめの記事

  1. ラズパイ4をデスクトップPCライクに使えるOSとして個人的に急浮上中のEndlessOS

  2. ラズパイで実用的な物を作るなら特化したOSから始めてみよう

  3. ラズパイ4にも対応している軽量でクールなOS「Manjaro」はアリ

  4. 正式にUbuntuがラズパイ4に対応(Ubuntu 20.10)

  5. これも動く、風変わりなOS〜Raspberry Pi で動く様々なOS一覧まとめ13種類!

  6. TwisterOSで懐かしのWindows、最新macOSの見た目でラズパイを使う

今月の人気記事

  1. 1

    Raspberry Pi で動く様々なOS一覧まとめ13種類!

  2. 2

    ラズパイ4をUSB接続のSSDから起動する方法(USBブート)

  3. 3

    初心者でもラズパイでNASサーバーを作ってみよう!

  4. 4

    Raspberry Pi 4の初期設定2020年版

  5. 5

    Raspbian のWi-Fi設定(Raspberry Pi 初期設定)

  6. 6

    ラズパイ4とOMV5(openmediavault5)で作る自宅NASサーバーの設定方法

  7. 7

    Raspberry Pi 4を起動したのにモニターに画面が映らない対処法

  8. 8

    ラズパイで使うmicroSDカードの選び方

  9. 9

    Raspberry Pi 4のOSをデスクトップPCとして使うためにUbuntuMATEをインストールしてみた

  10. 10

    ラズパイ4はPCライクな性能になったけどPCではないよという話

記事ランキングページ

TOP