極北別世界通信
まぁRubyやらRailsやらからっきしなのでアレですが。 今回のはRuby関係ないですが。 Shirasagiの常時SSL化をNginxのリバースプロキシ下でやろうとしてハマった話。 インターネット(SSL)⇒Nginx ⇒(ここから先http)(別Serverの)Nginx ⇒ Shirasagi(Unicorn?) という構成で、公開サイトをsslで表示するのはすぐにできたんですが、管理画面ログインがうまくいかなくて困った。   フロント側のNginxのプロキシ(ヘッダー)設定を proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Ssl on; proxy_set_header X-Forwarded-Proto https; バックエンド側のNginxはShirasagiインストール時に生成されてるんだけど、 #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; を proxy_set_header X-Forwarded-For "$http_x_forwarded_for, $realip_remote_addr"; に書き換えてみた。 ようはフロントで proxy_set_header X-Forwarded-Ssl on;proxy_set_header X-Forwarded-Proto http...
雑ですが忘れないようメモ ・F-Revo CRMをインストール 無印?版はphp5.6でしか動かないのでオフィシャルなどにある手順通りインストール https://f-revocrm.jp/2018/08/8273 パッチ3の適用まで書いてありますが、さらに今はパッチ4、5、6、6_1までリリースされていますので、すべて適用します。 基本的にアーカイブを展開してディレクトリごと上書きするだけです。 また、前の記事で書いた includes/main/WebUI.php がパッチ6で上書きされるので、修正しなおしを忘れないようにしましょう。 パッチ6がphp7対応バージョンとのことなので、合わせてphpを7.2に更新します。一応apacheとか止めておいたほうが無難なのかな?当方は仮想マシンで丸ごとバックアップしていたのであんまり考えずに実行してしまいましたが。 yum install --disablerepo=base --enablerepo=epel,remi,remi-safe,remi-php72 php php-gd php-mysqlnd php-imap php-mbstring php-devel php-mcrypt php-xml php-opcache 用心でphp.iniとかもバックアップしてましたが、特に何も変更せずとも大丈夫でした。 これでphp7.2環境になりました。 時間が取れそうならもう少し丁寧に書きます。。。
F-revo CRMをNginxのリバースプロキシの背後に置くとRefererを見られてうまく動いてくれない。 本来ならgetコマンドでRefererを取って反映、とかやるのが正しいのだろうけど、とりいそぎコード変更してみた。 どうなんだろ、一応開発元に質問したりしてみてもいいもんなんだろうか。 なお前提としてNginxでのリバースプロキシは構築済みで、nginx側でのSSL化も済んでる前提です。 ■事前: crm/config.inc.phpの「$site_URL」を以下のように設定 $site_URL = 'http://【サーバのIPアドレス】/crm/'; ■以下のように変更 # vi crm/config.inc.php $site_URL = 'https://【SSL証明書を取得したドメイン名】/crm/'; # vi crm/includes/main/WebUI.php // if ($site_URL && stripos($request_URL, $site_URL) !== 0){// header("Location: $site_URL",TRUE,301);// exit;// } ただ、これRequest URLとSite URLが正しくないと接続を許可しないってセキュリティ面を担保する設定のような気がするので、そもそもOFFにするのがいいのかといわれるとちょっと。。という感じ。 一応ログ等見ながら様子見。 。。。あれ、パッチどこまで適用してたっけ。。ちょっと確認しないと。
基本的なインストールやら導入は(暇があったら書きますが)、とりあえずたくさん記事があるので放置して、ハマリかけたとこだけ SSL設定で dhparam.pem がないと怒られる。 # nginx -tnginx: [emerg] BIO_new_file("/etc/ssl/certs/dhparam.pem") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/ssl/certs/dhparam.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file) まぁネット上のConfigパクってて設定もしてないほうが悪いんですが、Nginxは今のVersionだとdhparam.pemがないといけないらしいので注意。 んで # openssl dhparam 2048 -out /etc/ssl/certs/dhparam.pemGenerating DH parameters, 2048 bit long safe prime, generator 2 完了まで時間がかかる。 そのあと # nginx -tnginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful 正常にとりあえずはなったのでメモ
他に書く場所も確保していないのと、せっかくの構築関連のTIPS的なやつなのでここにメモがてら。 自宅で古めのサーバにNextCloudを構築して使っているが、自宅にいくつもサーバを立てていると、外部から接続させるときのポートフォワーディング設定などが煩わしい うっかり開けた穴を閉じ忘れてるなどもあるかもしれないので、思い切ってやり方を変えることにした。 基本的に自宅で構築するものはWeb系のものが多い。なのでいっそ全部リバースプロキシで受けて増やしたり減らしたりする際にはリバースプロキシ側で制御すればいいんじゃん?と考えたわけである。 。。。が、本編のリバースプロキシ構築に入る前に、NextCloudを現在Let's Encryptを使ってhttpsで外部からつながるように設定しているのだが、ローカル側は常にhttpで構築するように変更しようと考えたところなぜかNextCloudにhttp経由の場合ログインができない状態に陥った。 色々調べてみると、どうもphpのセッションが格納されるディレクトリの権限の問題と判明。 当方の場合CentOSでインストールしているのだが、/var/lib/php の権限の問題で、/var/lib/php/session配下に生成されるセッション管理ファイル...
現在はローカルでの作業が主体ですが一応コンテンツをもう少し拡充させようと地味に努力中。 とりあえずはマイナーOSデータベースの再整理を進めてます。昔ダウンロードしたものが現状、サイトごと消えてたりするかと思えば、一応ソースコードだけはまだsourceforgeに残ってたりと様々です。
今回は惨敗中の惨敗です。まぁ前々回あたりからろくな宣伝活動もできていないのは確かなので、もう少し活動をしていきたいと思います。 始めにfnowのサイト内のコンテンツをもう少し充実していかないと。。。  
2019/12/01
一応冬コミ出展予定ですが原稿がままならない状況。。 何かしらは出さないと次回が危うくなるので頑張りますが。 12/31 火曜日 南地区 リー20a「Fnow」になります。
他のコンテンツは気が向くまで動かさずになるべくこのどうでもいい日記だけでもつけておくことにしよう。 なのでなんだかわからないメモが多くなるかもしれないけれどメモっておく癖付けないとなんとも。  
文章はWikipediaあるいはネット上記事のコピペあとで整理する