このサイトでも幾度か、Subsonicの記事を投稿しておりますが、今更ながら、SSL証明書によるHTTPS化して、ついでにサブドメインにてアクセスするように設定した。
環境
- CentOS 6.x
- Nginx 1.10.x (ssl設定済み)
- Subsonic 6.0
- DNS管理はCloudFlare
- SSL証明書はLet’sEncyptにて取得
現状は、CentOS上にSubsonicを運用しており、https://localhost:4040にて稼働しております。
Contents
今回作業する項目
CloudFlareにてサブドメインを設定し、nginxでサブドメイン用confファイル作成、SSL証明書発行後、confファイルに適用と言う流れになります。
サブドメイン設定
私は、DNS管理をCloudFlareに任せていますので、CloudFlareにログインします。
https://www.cloudflare.com/a/login
上記項目のDNS設定をクリックし、下記の囲んだ部分にサブドメインを記入して、追加します。
- 左のレコードタイプをA
- 次にサブドメイン名(今回はsubsonic)
- サブドメインのIPアドレス (通常、subsonicを動作させているIP)
- TTLは通常Automaticですが、早く反映させたいので、2min
DNS反映後は、Automaticに戻しましょう - CloudFlareを通さない設定にしておかないと、この後の証明書発行ができませんので、雲マークがオレンジではなくグレイになるようにクリックしておきます
DNS反映には、しばらく時間がかかるので、コーヒーを飲んだり出かけたりすると良いかもしれません
一応、確認としては、CloudFlare上で設定が反映されていれば、
$ dig @ns6.cloudflare.com subsonic.xxx.xxx にて、設定したIPアドレスが表示されればOK
そして、サブドメイン(subsonic)上の端末から、
$ dig subsonic.xxx.xxx にて設定したIPアドレスが表示されれば、次に進めます
NginxのSubsonicサブドメイン用設定ファイル作成
設定ファイルは、/etc/nginx/sites-available/内にsubsonic.confと言う名前(任意でも)で作成します。
# cat subsonic.conf server { listen 80; server_name subsonic.xxx.xxx; access_log /var/log/nginx/subsonic-access.log; error_log /var/log/nginx/subsonic-error.log; location / { proxy_pass https://127.0.0.1:4040; proxy_redirect https:// https://; }
保存後に、sites-enabled内にシムリンクを張ります
# ln -s /etc/nginx/sites-available/subsonic.conf /etc/nginx/sites-enabled/
書式に間違いないか確認
# service nginx configtest
エラー表示がなく、Syntax OKが表示されれば、適用します
# service nginx reload
これで問題がなければ、サブドメインのURLでアクセスすると、Subsonicの画面が表示されるはずです。
SSL証明書取得・設定
ここでは、無料のSSL証明書(Let’sEncypt)をサブドメインに適用します
Let’sEncryptをインストール
すでに、Let’sEncryptのプログラムは導入済みなのですが、初めての方は下記でインストールします。
# git clone https://github.com/letsencrypt/letsencrypt <directory> # cd <directory>
サブドメイン用の証明書取得
# ./letsencrypt-auto —nginx
(初めて起動の方は、ここで、いろいろなプログラムがインストールされます)
- aaa.xxx.xxx
- bbb.xxx.xxx
- subsonic.xxx.xxx
….
サーバー内nginx設定ファイルが自動で読み込まれるので、適用するドメインを使用します。
ここでは、subsonicなので3を選択
登録するにあたり、規約のPDFを見て承諾するか尋ねられるので、AgreeのAを打ち込む
初めての方は、登録するメールアドレスを求められるので記入します
1: Easy – Allow both HTTP and HTTPS access to these sites
2: Secure – Make all requests redirect to secure HTTPS access
今まで通りhttpsでもアクセス可能にするか、全てhttpsで接続させるかを任意で指定
これで、Congratulations!が表示されれば、サブドメインのsubsonic.confにssl設定が追記されています
一応、設定ファイルを読み込んでおきます
# service nginx reload
そして、サブドメインのSubsonic(subsonic.xxx.xxx)へhttpsでアクセスして、httpsへリダイレクトされてログイン出来れば完成です。
作業時間より、この記事書くほうが時間かかってしまいました。(^_^;)