Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What are the problem?

posted at

updated at

baserCMS LOLIPOP! サイトSSL化に際して設定するサイトURL周りの諸事情

baserCMSのサイト運用で、SSL化に際して設定が必要なサイトURL周りのいろいろについて考察しました。

サイトSSL化に伴って、baserCMSの管理画面上で設定の変更が必要な部分は、①ときどき②、ところによって④という感じ。
Qiita用.jpg
しかし、これらの各項に入れる情報がイマイチ分かりにくいのですが、まず確実に言えることから整理しますと、

  • ①に、https://から始まるSSL化後のサイトURLを入力する。
  • ④で「SSL通信を利用する」を選択した場合、②欄にhttps://から始まるSSL化後のサイトURLの入力が必須である。

以上の2点。

で、ここからがちょっと不思議。
だからといって、②にhttps://から始まるSSL化後のサイトURLを入力したからと言って、④で必ずしも「SSL通信を利用する」を選択しなければいけないわけではなく「SSL通信を利用しない」のままでも問題ない。(意図的にその様な設定をする意味があるのか、そんなユースケースがあるのかは置いておいて、恣意的にその様な設定が可能である)
そもそも、今時「SSL化=常時SSL化」でほぼ間違いないし、フロントサイドのみSSL化してバックエンドはSSL化しないとか、その逆も含めてそんなユースケースはもう考える必要もない時代なわけで。
となるといよいよ①②④は、マルっとSSL化したURLと当然SSL通信を利用するで良いのではないのか?!と思うんですがね。。。
とはいえ、管理画面も含めていきなりSSL化してしまうと、場合によって管理画面にログインできなくなってしまうという事故に見舞われることも想定されるわけで、そこら辺を加味すれば、

  • まずは、① ② 欄にhttps://から始まるSSL化後のサイトURLをあ入力していったん「保存」
  • その上で、フロントサイド、管理画面共にhttps://から始まるSSL化後のサイトURLで閲覧可能かを確認
  • 最後に ④ 欄「SSL通信を利用する」を選択して、再度「保存」

という手順が、SSL化後の安全な設定移行の手順なのかもしれません。

ところが、これらのSSL化にまつわるサイトURL周りの設定情報は、LOLIPOP!の「baserCMS 簡単インストール」機能を使ってbaserCMSをインストールした場合、管理画面上のサイト基本設設定のUIから入力できないという現象に見舞われます。
事情および対処方法は、次のパラグラフ。

ロリポップ!で「baserCMS 簡単インストール」した場合の install.php のパーミッションに関して

ロリポップ!「baserCMS簡単インストール」でbaserCMSをインストールした場合、インストール後に生成されるinstall.phpファイルのパーミッションは 400 に設定されます。

以下、baserCMSのインストール時に生成される install.php のコード。

/app/Config/install.php
<?php
Configure::write('Security.salt', '****************');
Configure::write('Security.cipherSeed', '****************');
Configure::write('Cache.disable', false);
Configure::write('Cache.check', true);
Configure::write('BcEnv.siteUrl', 'http://****************/'); //①の項目
Configure::write('BcEnv.sslUrl', ''); //②の項目
Configure::write('BcEnv.mainDomain', '');
Configure::write('BcApp.adminSsl', false); //④の項目
Configure::write('BcApp.allowedPhpOtherThanAdmins', false);
Cache::config('default', array('engine' => 'File'));
Configure::write('debug', 0); //③の項目

パーミッションとは、ファイル(フォルダ)に対する保護モードで、ファイルにアクセスするアカウント種別ごとにアクセス権限を定義することができます。
パーミッションの設定によってアクセス制限を行うことで、悪意のある第三者から、重要なファイルの内容を書き換えられたり、実行されたりすることを防ぐことができます。
パーミッション 400 は、当該ファイルに対して、ログインユーザーのみに「読み取り」権限のみが許可されている状態で、言い換えるとログインユーザーであっても「読み取り」以外の「書き込み」「実行」といった権限は許可されていないということになります。ログインユーザー以外(ユーザーグループ、一般の閲覧者)は、読み取り、書き込み、実行といったいかなる権限も許されていない状態です。

つまり、ロリポップ!は、不正アクセスによってサイトが改竄されることを防止する目的で、このファイルをパーミッション 400 に設定しており、それは、ロリポップ!「baserCMS簡単インストール」のポリシーということになるのかと思います。

ですが、実際には、このパーミッション設定によって、本来であれば、ログインユーザーに許可されるているはずの管理画面の①から④の赤枠で示した項目が変更できなくなり、サイト所有者にとっては場合によって困ることになります。

というわけで、ロリポップ!「baserCMS簡単インストール」でbaserCMSをインストールした場合に限っては、これらの項目を変更するような要件が起きたときには、FTPでインストール先のサーバー内のinstall.phpファイルにアクセスし、「書き込み」権限を許可するため、パーミッションを変更する必要がでてきます。

具体的には、install.phpファイルを、ログインユーザーの「書き込み」権限を許可したパーミッション 600 に設定する必要があります。
以下、「ロリポップ!FTP」サービスを使用した場合です。ご参考まで。
Qiita用.jpg

諸々の変更作業が終わったあとは、できれば、install.phpファイルをパーミッション 400 の設定に戻しておきましょう。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What are the problem?