hacks/ほげり道

2011年08月13日

このエントリーをはてなブックマークに追加

手短にオレオレ証明書を作れたら、楽になれる

開発作業をしていると、色々理由はあれど、年に数回、オレオレ証明書(自己署名証明書)が必要になる。 その度に、過去の作業記録を掘り起こしてopensslコマンドを実行。それの繰り返し。 今後の作業を考慮し、スクリプトを作成してgistにスクリプトを登録した。

検証環境
  • Ubuntu 10.04.3 Server LTS
  • OpenSSL 0.9.8k 25 Mar 2009
  • dash 0.5.5.1-3ubuntu2
要件定義

過去の作業を振り返り、何が必要なのかをまとめると下記の通り。

  • コモンネーム指定は必須
  • 連絡先メールアドレスを設定出来ると良い
  • 主要webサーバの設定例が表示されると良い
  • 登録者情報は不要。必要だった事がない。
スクリプトデザイン

実装するに辺り、下記のようにまとまる。

  • コマンド引数は1つか2つで良い
    • 必須: コモンネーム
    • 任意: メールアドレス
    • $ script common_name [email]
  • ファイル名にコモンネームを入れる
    • $(コモンネーム)_key.pem
    • $(コモンネーム)_csr.pem
    • $(コモンネーム)_crt.pem
  • 各pemファイルは、カレントディレクトリに生成・保存
  • apachenginxの設定例を出力
    • apache:
      
      SSLCertificateFile    /path/to/$(コモンネーム)_crt.pem
      SSLCertificateKeyFile /path/to/$(コモンネーム)_key.pem
      
    • nginx:
      
      ssl_certificate     /path/to/$(コモンネーム)_crt.pem;
      ssl_certificate_key /path/to/$(コモンネーム)_key.pem;
      
コモンネームを指定して実行

実際にスクリプトを実行してオレオレ証明書を生成してみると、下記の通りになる。

  • コモンネーム: ssl.example.com

実行結果:


$ ./gen-selfsigned-cert.sh ssl.example.com
...(省略)...

# 1. Generated a Private Key and CSR
=> ssl.example.com_key.pem

=> ssl.example.com_csr.pem

# 2. Generated a Self-Signed Certificate
=> ssl.example.com_crt.pem

# 3. Installing the Private Key and Certificate
# 4. Configuring SSL Enabled Virtual Hosts
-----
apache:
        SSLCertificateFile    /path/to/ssl.example.com_crt.pem
        SSLCertificateKeyFile /path/to/ssl.example.com_key.pem

nginx:
        ssl_certificate     /path/to/ssl.example.com_crt.pem;
        ssl_certificate_key /path/to/ssl.example.com_key.pem;
-----

生成されたファイル:


$ ls -1 *.pem
ssl.example.com_crt.pem
ssl.example.com_csr.pem
ssl.example.com_key.pem

後の作業は、

  1. pemをどこか適切な場所へ配置
  2. webサーバのconfigを変更
  3. webサーバにconfigを読み込ませる
  4. ブラウザから "https://ssl.example.com/" へHTTP接続して確認

あと書き

面倒臭い作業の1つを減らせてスッキリした。

ソースコード

gistにはブログ等にコードを埋め込む仕組みが用意されていて便利だ。

続きを読む


編集
@hansode at 10:00|PermalinkComments(0)TrackBack(0)

2009年10月20日

このエントリーをはてなブックマークに追加

「CPU使用率を高めたい」

隣に座っている人に質問された。
何をやっているのか見てみると、whileループでechoさせていた。

▼例


while :; do echo asdfasdf; done

foregroundで実行しているではないか。
backgroundで複数実行する事を伝えてみたけど、伝わらなかった。
キーボードを拝借。


$ cat >>EOS < perf.sh
#!/bin/sh
while :; do echo asdfasdf; done
EOS
$ chmod +x pref.sh
$ ./pref.sh &

いくつか実行したら95%くらいCPUを使うようになっていた。

forkしすぎに注意。
何事も程々に。




編集
@hansode at 01:15|PermalinkComments(3)TrackBack(0)

2009年05月28日

このエントリーをはてなブックマークに追加

Gitを使い始めた

Wakame」でGitを使い始めたのがきっかけ。

今までに実行したgitコマンド。

  • git clone
  • git add
  • git diff
  • git commit
  • git status
  • git log
  • git checkout
  • git branch
  • git pull
  • git push

タイミング良くWEB+DB PressにGit特集が載ってたので読んでみた。
分散管理の「ぶ」をちょっとだけ分かった気がする程度。

兎にも角にも、使い慣れるしかないと感じた。
本格的な戦いはこれからだ。


WEB+DB PRESS Vol.50
WEB+DB PRESS Vol.50
posted with amazlet at 09.05.28
WEB+DB PRESS編集部
技術評論社
売り上げランキング: 1014



編集
@hansode at 10:55|PermalinkComments(0)TrackBack(0)

2009年05月21日

このエントリーをはてなブックマークに追加

LDR 購読者数を XPath Graph で可視化するより

刺身さん」に教えて頂いた「XPath Graph」。
刺身さんのアドバイス通りに設定してみた。

▼半袖blog 読者数(LDR)

読者数(LDR)

今はまだ取得期間が少ない。
今後、増減すると面白い状態になるはず。

刺身さん、ありがとう!




編集
@hansode at 14:50|PermalinkComments(0)TrackBack(0)

2009年04月08日

このエントリーをはてなブックマークに追加

怠惰の為の努力


例えば特定接続先ではユーザー名が違う

  • 普段の作業環境では「hansode」
  • 管理ポリシー等で別ユーザー名を指定される。「nagasode」
  • 接続先専用秘密鍵がある
コマンドラインでオプション指定

$ ssh example.jp -l nagasode -i ~/.ssh/id_example.jp

毎回、オプション指定が面倒くさい。
さて、どうする。

ssh_configでオプション指定

$ whoami
hansode
$ cd $HOME/.ssh
$ vi config
----
Host example.jp
        IdentityFile ~/.ssh/id_example.jp
        User nagasode
----

一度ssh_configを設定しておけば、
次回以降作はホスト名指定だけで済む。


$ ssh example.jp

alias? ssh_confg?


コマンドラインオプション指定の手間を省くにはaliasを使う手もあるけど、
ログインシェルの設定ファイルに書く必要がある。

ssh_configを使うと、ログインシェルに非依存。
また、$HOME/.ssh/は700なのでオプションを覗かれる心配がなくなる。
さらに、psコマンドでもsshのオプションが見える心配はない。

sshの設定は、ssh_configがオススメ。

続きを読む


編集
@hansode at 10:40|PermalinkComments(0)TrackBack(0)

2009年02月25日

このエントリーをはてなブックマークに追加

ルートパーティションの容量増加しなくて良い

WindowsでWebアプリ開発環境に便利なcoLinux

開発していくと、ディスク容量不足になりがちだ。
ディスク容量不足になる人が多々いる事は、検索してみると分かる。
その対応策は、どれもこれも「ルートパーティションの容量増加」。

ディスク容量不足になった自分も、その作業をしそうになった。
しかし、容量不足の要因を冷静に考えてみた。

  • 容量が増えやすいポイントはどこなのか?
  • パッケージによる圧迫はどれくらいなのか?
  • 必要なポイントだけ増やせばいいのではないか?

自問自答。


必要とされているのは開発作業用ディレクトリ

日々成長し、膨れ上がって行くは開発用に使っているディレクトリ。
だったら、そこだけ増やせばいいじゃない

  • rootパーティションの容量不足対策
    • 作業用パーティションを作成し、作業データを移動すればrootパーティションの使用率を減らせる
    • rootパーティションはシステム領域に特化させる

作業記録

ディスクサイズ算出。
2Gもあれば十分だろう。


$ echo $((2 * 1024 * 1024 * 1024))
2147483648

ディスクイメージ作成


C:\> cd "C:\Program Files"
C:\> fsutil file createnew work_fs.img 2147483648

configにwork_fs.imgを追加


kernel=vmlinux
cobd0="C:\Program Files\coLinux\root_fs_new.img"
cobd1="C:\Program Files\coLinux\swap.img"
cobd2="C:\Program Files\coLinux\work_fs.img"
root=/dev/cobd0
ro
initrd=initrd.gz
mem=256
eth0=tuntap
cofs0=C:\

coLinux起動後、マウントポイント作成


$ sudo -s
# mkswap    /dev/cobd1
# mkfs.ext3 /dev/cobd2
# mkdir /mnt/work_fs

/etc/fstab設定


# vi /etc/fstab
# cat /etc/fstab

proc            /proc           proc    defaults        0       0
/dev/cobd0      /               ext3    noatime,errors=remount-ro 0       1
/dev/cobd1       none           swap    sw              0       0
/dev/cobd2      /mnt/work_fs    ext3    noatime,errors=remount-ro 0       1
cofs0   /mnt/windows    cofs    defaults        0       0

新しい領域を含めて再マウント


# mount -a

作業領域作成と引っ越し


# mkdir /mnt/work_fs/$(project)
# mv /opt/$(project) /mnt/work_fs/.

symlinkを張って論理的に同じディレクトリ構造に直す


# ln -s /mnt/work_fs/$(project) /opt/$(project)

まとめ

  • ルートパーティションはそんなに増えて行かないはず
  • 作業ディレクトリやログが成長していく
  • 必要な部分だけ増やせばいい



編集
@hansode at 11:15|PermalinkComments(0)TrackBack(0)

2008年11月11日

このエントリーをはてなブックマークに追加

CodeReposにはとにかく色々な物が登録されている

その色々な物の中にはホームディレクトリにおける各種ドットファイルがある。
個人的には.emacsを管理する程度で、他のドットファイルはほぼ初期状態のまま。

最近ではcoLinuxやXenなどに一時的な開発環境を構築する時が多々ある。
その度にメイン作業環境の.emacsをコピーする。これの繰り返し。



CodeReposで.emacsを管理し始めたエントリを幾つかあった事を思い出した

「とりあえず」と言うレベルでコミット。

まだまだ整理の余地がある。
まともにEmacs-Lispを書いた事がないな。
勉強したい事が沢山ある。



入門 GNU Emacs 第3版
入門 GNU Emacs 第3版
posted with amazlet at 08.11.11
Debra Cameron James Elliott Marc Loy Eric Raymond Bill Rosenblatt
オライリー・ジャパン
売り上げランキング: 70559



編集
@hansode at 10:50|PermalinkComments(0)TrackBack(0)

2008年10月08日

このエントリーをはてなブックマークに追加

変更履歴

2008.10.08 19:45
  • ドラッグ&ドロップした場合に地図中心移動
  • 地図の左上、右下の位置情報追加
  • ズームレベルの変化追加

やりたい事

  • 住所検索するとマップを表示
  • マップ上のマーカーをドラッグ&ドロップ可能
    • マーカーが置かれているポイントの位置情報取得
    • マーカーが中心となるように地図を移動
  • 表示されている地図の右上と左上の位置情報取得
  • ズームレベルの変化

参考にしたページ

検証例

※rssリーダーでは地図が表示されません

マーカー位置情報
地図左上位置情報
地図右下位置情報
ズームレベル ->




編集
@hansode at 14:55|PermalinkComments(0)TrackBack(0)

2008年09月28日

このエントリーをはてなブックマークに追加

犯人はMicrosoft Office IME 2007


Office 2007をインストールすると、
何故かキーボード配列が日本語配列に戻ってしまった。

レジストリを確認してKBD106.DLLとなっている項目を探したら見つかった。
  • regeditを起動
  • 「\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\e0200411\Layout File」の値をKBD106.DLL から KBD101.DLへ変更
  • システム再起動
前回Officeをインストールした時は発生しなかった。
発生する条件が良くわからないな。



編集
@hansode at 17:40|PermalinkComments(0)TrackBack(0)
このエントリーをはてなブックマークに追加

次回作業する自分へのメモ


何度やっても忘れている
  • regeditを起動
  • それぞれKBD106.DLL から KBD101.DLへ変更
    • 「\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters\LayerDriver JPN」
    • 「\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0010411\Layout File」



編集
@hansode at 17:25|PermalinkComments(0)TrackBack(0)