2017年6月14日水曜日

Apache + OpenSSLでのCSR生成方法

Apache + OpenSSLでのCSR生成方法

①秘密鍵を生成する
openssl genrsa -des3 -out ./xxxxxx(ファイル名).key 2048
-des3:des3アルゴリズムのパスワードを保護する
パスフレーズを要求されるので忘れない
keyファイルが生成されます

②①で作成した秘密鍵ファイルからCSRを生成する
# openssl req -new -key ./xxxxxx(ファイル名).key -out ./xxxxx.csr

③証明書の署名要求が表示されるので諸々入力していく
# Country Name (2 letter code):JP(国コード)
# State or Province Name (full name) []:Tokyo(都道府県)
# Locality Name (eg, city) [Default City]:Shibuya(市区町村)
# Organization Name (eg, company) [Default Company Ltd]:会社・組織名
# Organizational Unit Name (eg, section) []:部署名
# Common Name (eg, your name or your server's hostname) []:認証を受けるホスト名
# Email Address []:
# Please enter the following 'extra' attributes
# to be sent with your certificate request
# A challenge password []:
# An optional company name []:
csrファイルが生成されます

2017年4月18日火曜日

header("Location:~")でページしない件

header("Location:~")で遷移しない。
header("Location:~")の前にhtmlがあると止まるそう。

<html><body>
<?php 
    header("Location: URL"); 
    exit(); 
?> 

こういうのはダメ。

2017年3月1日水曜日

今更ながらgitのお勉強(2) git pushで本番環境に自動デプロイさせる

ローカル環境で
git push origin master

本番環境で
git pull origin master

これが面倒なので、ローカルでgit pushさせたら本番でpushを検知して、自動でpullするようにする。

$ cd /home/gitrepo/○○.git/hook
$ vi post-receive
#!/bin/sh
cd /var/www/html/test
git --git-dir=.git pull
$ chmod a+x post-receive

これでローカルからgit pushすると本番に自動反映されるようになりました。

2017年2月27日月曜日

実行中のプロセスの調べ方

そもそもプロセスって何?・・・Linuxで動作中のプログラム。タスクとも呼ばれる。プロセスには親子関係があり、親プロセスが子プロセスを生む。

プロセスの確認
psコマンドで実行します。まずはオプションなしの単純なパターン

$ ps
PID TTY          TIME CMD
21750 pts/0    00:00:00 ps
30490 pts/0    00:00:00 bash

表示の意味
PID・・・プロセス番号
TTY・・・プロセスを実行している制御端末
TIME・・・CPUの消費時間
CMD・・・実行コマンド

すべてのプロセスを確認
$ ps a

すべてのプロセスをユーザーフォーマットで表示
$ ps au

制御端末のないものも含むすべてのプロセスをユーザーフォーマットで表示
$ ps aux

特定のプロセスを確認する(ここではhttpd)
$ ps aux | grep httpd
root      4250  0.0  0.1 413200 39388 ?        Ss   Feb26   0:55 /usr/sbin/httpd
nobody   23957 17.6  0.1 426296 45972 ?        R    17:23   0:01 /usr/sbin/httpd
nobody   23958  3.5  0.1 418328 37932 ?        S    17:23   0:00 /usr/sbin/httpd
nobody   23984 10.7  0.1 422560 41852 ?        S    17:23   0:00 /usr/sbin/httpd
nobody   23985  6.1  0.1 421728 41468 ?        S    17:23   0:00 /usr/sbin/httpd
nobody   23986  1.6  0.1 423500 41816 ?        S    17:23   0:00 /usr/sbin/httpd
nobody   23987  1.8  0.0      0     0 ?        Z    17:23   0:00 [httpd] <defunct>
nobody   23988  3.2  0.1 423456 42744 ?        S    17:23   0:00 /usr/sbin/httpd
nobody   23989  2.7  0.1 421540 41456 ?        S    17:23   0:00 /usr/sbin/httpd
nobody   23991 10.5  0.1 444792 63724 ?        S    17:23   0:00 /usr/sbin/httpd
500      24130  0.0  0.0 107456   940 pts/0    S+   17:23   0:00 grep httpd

STATのアルファベットの意味
R・・・稼働中
S・・・スリープ中
D・・・スリープ中(現在制御不可)
T・・・停止処理中、またはトレース中
Z・・・ゾンビ状態

以前起きたトラブル
nagiosからプロセス増加の警告
→ps aux | grep httpdでapacheのプロセスを確認
→スリープ状態のhttpdが大量にある

とりあえずは以下で対処できます
・killコマンドで個別にプロセスを消す
・apache再起動

2017年2月22日水曜日

setcookieした内容がリダイレクトで消える件

セットしたクッキーがリダイレクト後に消えてしまう
setcookie( "test", "value", time() + 1800 );
header("location:example.com");
デフォルトではカレントディレクトリが有効範囲らしいので
setcookie( "test", "value", time() + 1800, "/" );
としてドメイン配下をすべて有効にするとうまくクッキーが焼けました

2017年2月13日月曜日

今更ながらgitのお勉強(1) 基本のコマンド

よく使うgitの基本コマンドをまとめました。

git init
プロジェクトをgitで管理するときに使用する
git init

git add
新規追加された、更新されたファイルをaddする
git add . (カレントディレクトリ以下のファイルをすべてaddする)
git add -u (既にgit管理内にあるファイルのみで、変更があった部分のみをaddする)

git commit
addされたファイルをコミットする
git commit -a (変更のあったファイルをすべてコミット)
git commit -v (変更点を表示してコミット)
git commit -m (コメントを残してコミット)
git clone
既存のリポジトリからコピーしたいときに使う
git clone ○○○(http://~~, ssh://~~)

git pull
リポジトリの最新情報を取得し(fetch)現在の状態とマージ(merge)する
git pull origin master (originリポジトリのmasterブランチからpullする)

git push
リポジトリへ更新をプッシュする
git push origin master (originリポジトリのmasterブランチにpushする)