カテゴリー: Client Side

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

OpenSSLでオレオレ認証局(CA)とオレオレ証明書を作る

OpenSSLを使って久しぶりにオレオレ認証局(CA)を立ち上げようと思ったら方法を完全に忘れていて苦労したので、整理してメモ。方法を検索すると、CA.plを使ったり使わなかったり、CA.shを使ってみたり、openssl.cnfを編集したりしなかったりと、いろいろ流儀があるようなので、その辺も含めて整理する。なお、環境はMac、OpenSSLは0.9.8系。

公開鍵証明書発行の手順

まずはおさらい。公開鍵証明書を発行する手順は次のようになる。

  1. 証明書のユーザーは、秘密鍵を生成する。コマンドで言えば、openssl genrsa -aes128 -out newkey.pem 2048など。
  2. 証明書のユーザーは、生成した秘密鍵を使って証明書署名要求(CSR; certificate signing request)を生成する。コマンドで言えば、openssl req -new -key newkey.pem -out newreq.pemなど。
  3. 証明書のユーザーは、生成した証明書署名要求を認証局(CA; Certificate Authority)へ送信する。
  4. 認証局は、受信した証明書署名要求に自らの秘密鍵で署名し、公開鍵証明書を生成する。コマンドで言えば、openssl x509 -req -CA ca.pem -in newreq.pem -out newcert.pemopenssl ca ...など(詳細は後述)。
  5. 認証局は、生成した公開鍵証明書を証明書のユーザーに送信する。

「なぜこんなに面倒なのか。CAが秘密鍵と公開鍵証明書のペアを生成してユーザーに送ればいいじゃないか。」と言いたくなるが、これは鍵配送問題に対処するため。秘密鍵を送るためには暗号化通信が必要で、そのためには秘密鍵が必要で、その秘密鍵を送るためには(以下略)となってしまうため、秘密情報であるユーザー・認証局それぞれの秘密鍵はそれぞれのマシンの外に出ない仕組みになっている。ユーザーと認証局の間の通信経路がたとえ傍受されていても秘密鍵は流出しない。

もちろん、認証局を使わずに自己署名のオレオレ証明書を生成するだけだったら、openssl req -new -x509 -keyout newkey.pem -out newcert.pemなどのコマンドで簡単にできる。今回はオレオレ認証局を立てたうえで、その認証局で署名したオレオレ証明書を濫発することが目的なので、面倒だけど認証局を立ち上げる。

続きを読む

スポンサーサイト

コマンドの結果を画面とパイプの両方に渡す方法

コマンドの結果を画面とパイプの両方に流す方法をいくつか調べたのでメモ。

やりたいのは、以下のような処理でpbcopyに渡った標準出力を、画面からも確認すること。

find . -type f | pbcopy

なお、pbcopyは標準入力をクリップボードに送るOS Xのコマンド。

続きを読む

JavaScriptでJIS丸め

前回、ExcelでJIS丸め等々を実装したので、余勢を駆ってJavaScriptでも実装したのでメモ。

ECMAScriptの仕様書によると、JavaScriptのMath.floor(), Math.ceil(), Math.round()は負の無限大(-∞)や正の無限大(+∞)に丸める実装になっているので、ゼロに近づける一般的な切り捨て、ゼロから遠ざかる一般的な切り上げ、ゼロから遠ざける一般的な四捨五入もメモ。

続きを読む

MS Excelで端数処理 2: ワークシート関数で切り上げ・切り捨て・四捨五入・JIS丸め

[追記 ()] FLOOR/CEILING関数の仕様がExcel 2010で変わっていたようで、記事で紹介されている数式のいくつかはExcel 2007以前のExcelでは動作しないことがわかりました。まとまった時間ができたときに情報をアップデートします。

前回の記事「MS Excelで端数処理 1: Excelの端数処理関数」から既に1ヶ月以上経ってしまった。標準的な端数処理 (切り捨て・切り上げ・四捨五入の類) は実装が終わっているので、とりあえずまとめ。

今回まとめているのは、丸め対象の数値を与えられればそれだけで丸め計算ができるものだけ。つまり、確率的丸めディザリングのように乱数を使ったり、交互丸めのように状態変数を使うものは除外。

先に言ってしまうと、最近接偶数丸め(いわゆるJIS丸め)の数式以外は大しておもしろくもない数式になってしまったので、最近接偶数丸めの数式を知りたいだけの人は、末尾のまとめまで読み飛ばしてしまってもいいかも。

続きを読む

MS Excelで端数処理 1: Excelの端数処理関数

Excelで四捨五入をしたいときは、

=ROUND(A1,0)

と入力します。

というような無内容なことを書きたいのではなくて、端数処理 - Wikipediaに載っているような各種の端数処理をExcelで実装するにはどうすればよいかという話。複数の丸め方をパッと試してみたくなることが結構あるので、各端数処理の数式をまとめておく感じ。

続きを読む

コマンドを起動して一定時間後にタイムアウト終了させるコマンドを作りました

コマンドを起動して一定時間内に終了しなかった場合に強制的にkillするコマンドラインプログラムを作りました。

Linuxではulimitを使えば似たような機能が実現できるし、それがなくてもバックグラウンド起動した後に一定時間sleepしてkill $!すればいいだけなんだけど、Windowsだとあまり単純ではなさそうだったので。

Haskellで書いた単純なプログラムなので、GHCでビルドしてあげればWindowsやLinuxで使うことができます。

詳細は続きで。

続きを読む

Finance::Quote::YahooJapanを更新しました!

関連記事: GnuCashで日本の投資信託の基準価額を取得するPerlモジュールを書いた

しばらく放置気味だったFinance::Quote::YahooJapanに不具合が見つかったので修正した新バージョンを公開しました。

Commit 298b63983378924daf8d8e6f4138e6da57e84d3d to LiosK's Finance--Quote--YahooJapan - GitHub

Version 0.3

  - Fixed a problem with stock names containing spaces.

  - Improved error handling.

  - Added a test case.

詳細は続きで。

続きを読む

[JavaScript] UUID.js を更新しました!

以前公開したまま放置していたJavaScript用のUUID生成ライブラリ、UUID.jsの最新バージョンを公開しました!

大幅な機能追加とバグ修正が行われて、ホスティング先もCodeReposからGitHubに変更されました!

LiosK's UUID.js at master - GitHub

UUID.js: The RFC-compliant UUID generator for JavaScript.

↓こんな感じのRFC 4122に準拠したUUIDをJavaScriptで簡単に生成することができます!

368606ed-98b5-11df-8fd2-0ba59ea365b9

UUIDは大量に生成しても重複が起きないように工夫されているので、中央で統制を取らなくとも一意のIDを生成できて何かと便利です!

使用例や動作サンプルは続きで!

続きを読む

[JavaScript] newは大事だよ!

JavaScriptのnewって何?一体何なの?という話 - 愛と勇気と缶ビール

クラスってものはJavaScriptにはないはずなのに、 new ClassName();と書くとあたかもClassNameクラスのオブジェクトのインスタンスが生成され、それが返ってくるかのような挙動をしている。

これは気持ち悪い。言語仕様としてはクラスは本来存在しないのに、クラスのようなものが導入されている。まともな神経を持った人間なら、一体 new演算子って何なの?という疑問を持つのが当たり前である。

こんな扱いを受けているnewがあまりにも不憫で涙した><

newはprototype-basedなJavaScriptを書くための唯一の手段[1]で、真にJavaScriptらしいコードを書くためには欠かすことができないものなのに><

ということで、newを擁護するためのエントリーをポスト。

続きを読む

[メモ] Xubuntuでおひとり様サーバーを立てるまで 2

前回の記事に引き続いてXubuntuサーバーの初期設定をメモ。今回はXmingを使ったリモートからのGUI操作関係の設定と、VALUE DOMAINDDNSを使ったサーバー公開の設定について。

続きを読む

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。