質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

2回答

3700閲覧

SSL証明書を設置したらCakePHPで作成したページがHTTP404エラー

SATURDAY2020

総合スコア12

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2016/11/22 23:35

編集2016/11/23 13:24

###前提・実現したいこと
Webサーバ上にCakePHPで作成したWebシステムを動かして、SSL証明書を設置した上で正常に動かしたい。

###発生している問題・エラーメッセージ
SSL証明書を設置する前は問題無く動いていたシステムが、SSL証明書設置後、HTTP404エラーが発生する。
httpsでもhttpでも同じ現象になる。

###試したこと
ドキュメントルートのindex.htmlは正常に表示されて、URL欄の横に鍵マークが表示、証明書の確認ができる。
ドキュメントルート以下のフォルダに設置したhtmlは正常に表示されて、同じく証明書の確認ができる。
ドキュメントルートに設置したphpinfoは表示される。

SSL証明書発行業者にも確認してもらって、SSL証明書が問題無く設置されているとの回答をもらっています。

###補足情報(言語/FW/ツール等のバージョンなど)
CakePHPでのシステム開発は外注に依頼しているので、プログラムの中身は詳しく解りません。

CentOS 6.5
Apache 2.4.20 (mod_ssl 2.4.20)
PHP 5.6.4
CakePHP 3.3.5
DB:MySQL

追記:
CakePHPのwebroot/img配下の画像にアクセスしても表示されます。

SSL証明書配置時に設定変更した内容は、
httpd.conf
コメント#外した
LoadModule socache_shmcb_module lib64/httpd/modules/mod_socache_shmcb.so
LoadModule ssl_module lib64/httpd/modules/mod_ssl.so

httpd-ssl.conf
内容変更した(www.abc.jpは例です)
ServerName www.abc.jp:443
SSLCertificateFile "/etc/ssl/crt/www.abc.jp.crt"
SSLCertificateKeyFile "/etc/ssl/crt/www.abc.jp.key"
SSLCertificateChainFile "/etc/ssl/crt/www.abc.jp.ca"

元々変更済みの内容は、
httpd.conf
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All

追記2:
設定変更後のCakePHPのerror.logの内容

2016-11-22 14:56:13 Error: [Cake\Network\Exception\NotFoundException] Please replace src/Template/Pages/home.ctp with your own version. Request URL: / Stack Trace: #0 /var/www/html/abc/vendor/cakephp/cakephp/src/View/View.php(1014): include() #1 /var/www/html/abc/vendor/cakephp/cakephp/src/View/View.php(973): Cake\View\View->_evaluate('/var/www/html/n...', Array) #2 /var/www/html/abc/vendor/cakephp/cakephp/src/View/View.php(597): Cake\View\View->_render('/var/www/html/n...') #3 /var/www/html/abc/vendor/cakephp/cakephp/src/Controller/Controller.php(617): Cake\View\View->render('home', NULL) #4 /var/www/html/abc/src/Controller/PagesController.php(57): Cake\Controller\Controller->render('home') #5 [internal function]: App\Controller\PagesController->display('home') #6 /var/www/html/abc/vendor/cakephp/cakephp/src/Controller/Controller.php(435): call_user_func_array(Array, Array) #7 /var/www/html/abc/vendor/cakephp/cakephp/src/Http/ActionDispatcher.php(122): Cake\Controller\Controller->invokeAction() #8 /var/www/html/abc/vendor/cakephp/cakephp/src/Http/ActionDispatcher.php(96): Cake\Http\ActionDispatcher->_invoke(Object(App\Controller\PagesController)) #9 /var/www/html/abc/vendor/cakephp/cakephp/src/Http/BaseApplication.php(83): Cake\Http\ActionDispatcher->dispatch(Object(Cake\Network\Request), Object(Cake\Network\Response)) #10 /var/www/html/abc/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Http\BaseApplication->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response), Object(Cake\Http\Runner)) #11 /var/www/html/abc/vendor/cakephp/cakephp/src/Routing/Middleware/RoutingMiddleware.php(62): Cake\Http\Runner->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response)) #12 /var/www/html/abc/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Routing\Middleware\RoutingMiddleware->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response), Object(Cake\Http\Runner)) #13 /var/www/html/abc/vendor/cakephp/cakephp/src/Routing/Middleware/AssetMiddleware.php(88): Cake\Http\Runner->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response)) #14 /var/www/html/abc/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Routing\Middleware\AssetMiddleware->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response), Object(Cake\Http\Runner)) #15 /var/www/html/abc/vendor/cakephp/cakephp/src/Error/Middleware/ErrorHandlerMiddleware.php(81): Cake\Http\Runner->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response)) #16 /var/www/html/abc/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Error\Middleware\ErrorHandlerMiddleware->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response), Object(Cake\Http\Runner)) #17 /var/www/html/abc/vendor/cakephp/cakephp/src/Http/Runner.php(51): Cake\Http\Runner->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response)) #18 /var/www/html/abc/vendor/cakephp/cakephp/src/Http/Server.php(92): Cake\Http\Runner->run(Object(Cake\Http\MiddlewareQueue), Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response)) #19 /var/www/html/abc/webroot/index.php(37): Cake\Http\Server->run() #20 /var/www/html/abc/index.php(16): require('/var/www/html/a...') #21 {main}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

popobot

2016/11/23 00:14

CakephpはSSL証明書の有無で動作が変わったり、特別な設定が必要になったりすることはないと思うので、Apache側の設定の問題ではないかと。Apacheの設定やエラーログなどあれば、掲載したほうが回答がつきやすかもしれませんね。なお、Cakephpのwebroot/img配下の画像等にアクセスするとどうなりますか?
CHERRY

2016/11/23 02:59

Web サーバに SSL の証明書の設定を追加した際に、 http に影響が出ることは普通はありませんので、Webサーバーの設定がどこか間違っていると思われます。 Web サーバーの設定を変更した付近を質問に追記していただけないでしょうか? Options や AllowOverride あたりで、.htaccess が無効化されていたりするのかなと思います。
popobot

2016/11/23 08:10

なんかCakephpのphpだけうまく動いていない感じですかね... Cakephp配下のlogsにerror.logはありますか? 設定変更後に何か出力していますか?
guest

回答2

0

Please replace src/Template/Pages/home.ctp with your own version.というエラーメッセージは、Cakephp3のデフォルトのトップページhome.ctpを開発(debug)モードではない状態で表示しようとすると発生します。

通常、home.ctpは実際にWebシステムの開発が進めば不要になるものなので、debugモードでない場合は、誤って表示されないように404 Not Foundになるようになっています。

CakePHPでのシステム開発は外注されたようですが、開発元に確認されたらいかがでしょうか...
なお、トップページ以外は見れるのでないかと思います。

※SSL対応でなぜこうなったのかもよくわかりませんが... Cakephp側の問題だと思います。

投稿2016/11/23 20:36

popobot

総合スコア6586

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

一度SSL証明書を外しても404エラーのままになってしまったので、どこか設定が壊れてしまっていたようです。
CakePHPをインストールし直して最新のプログラムを置いたら動いたので、改めてSSL証明書を設置したら問題無く動きました。
原因は分からず仕舞ですが。

投稿2016/11/24 14:29

SATURDAY2020

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問