アトム-サイト
[ アトム-サイト ] - 管理人さんのページです。
feed-icon RSS2.0   feed-icon Atom
[ Linux ] 一覧へ
WebサーバのSSL化
管理人さんのブログ 2009-11-30 16:26:44

まずはランダムなファイルを生成
現存するファイルを元に生成。
# openssl md5 * > rand.dat
*: No such file or directory
# openssl md5 * > rand.dat
ディレクトリに何も無いと怒られますが、2度目で1度目のrand.datを元にランダムファイルが作られます。

# ls
rand.dat
# cat rand.dat
MD5(rand.dat)= d41d8cd98f00b204e9800998ecf8427e

このランダムなファイルを元に、パスフレーズ付き秘密鍵を生成
# openssl genrsa -rand rand.dat -des3 1024 > ca.key
48 semi-random bytes loaded
Generating RSA private key, 1024 bit long modulus
...................................++++++
.............................................++++++
e is 65537 (0x10001)
Enter pass phrase:(パスワード入力)
Verifying - Enter pass phrase:(再パスワード入力)

秘密鍵ができました。
# cat ca.key
-----BEGIN RSA PRIVATE KEY-
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,1422EC9B7CFF1AF9

L7JNy0g6eW9Mo9hbJiXxeRxoNb19QI9NR7++qExKEHbL3tg9MA9xkbEcLERY4TNo





8uXtS0Li0LcBMD1mfQ7SdLG/MWXEGl4eaFqMHEglIfvxCnxLakSYKPFKgM9UQ9ZW
HSG34E0wp40GhtQTRzYh4wQCvSBfPlPXuusLmj75EqWhqAJgQzuIGw==
-----END RSA PRIVATE KEY-
この秘密鍵は、Webサーバの設定で使います。

秘密鍵を元にCSR(証明書要求)を作成
# openssl req -new -key ca.key -out ca.csr
Enter pass phrase for ca.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-
Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:Shizuoka
Locality Name (eg, city) [Newbury]:Kosai-shi
Organization Name (eg, company) [My-Company-Ltd]:Test Co., Ltd.
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:test.com
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

できました、CSR(証明書要求)。
# ls
ca.csr ca.key rand.dat

# cat ca.csr
-----BEGIN CERTIFICATE REQUEST-
MIIBoDCCAQkCAQAwYDELMAkGA1UEBhMCSlAxETAPBgNVBAgTCFNoaXp1b2thMRIw





4iSZ4RZlMJ4UOJPHz2IUkOLhTc3JAIHGxZ1gWeMJuPmYhrHyvxZTD6CLclw5v9ne
ceOdnl5ABBMd1EwNNGeDvkqhIQ+Q+4ehRR+6gaSaI+3rn9zQ
-----END CERTIFICATE REQUEST-

認証局から、署名付きの証明書を貰う
できたCSR(証明書要求)を認証局に送ると、証明書が送られてきます。
この証明書もWebサーバの設定で使います。
無料でSSL証明書を発行してくれるサイトはそんなには無いようです。
・CAcert
・startssl

ちなみに、CSRの作成を飛ばして、いきなりサーバ証明書を作るのは以下。
# openssl req -new -x509 -days 3653 -text -key ca.key -out ca.crt

Webサーバ設定
『ports.conf』
Listenを80から443に変更。
『ssl.conf』
SSLPassPhraseDialog を builtin から exec:/usr/local/sbin/pass.sh に変更してパス入力自動化。
『pass.sh』はこんな感じ。
# cat pass.sh
#!/bin/sh
host=`echo $1 | cut -d: -f1`
if [ "$host" = "test.com" ]; then <-注)全角[]は本来半角です
echo testpasswordabc;
fi
"$host" = "****" の、****が間違っていたり変なホストが混じっているとapache の起動に失敗します。
しっかりapacheのServerName設定と合わせる必要があります。

後は、オリジナルのssl.confをそのまま利用して「秘密鍵」と「証明書」を指定してあげれば、httpsでアクセスできる。
SSLCertificateFile /etc/httpd/conf/ssl/ssl.key/ca.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl/ssl.key/ca.key


※ 『Linux』に繋がる関連物を 視覚的に探しだせるサイトを作ってみました(よろしければクリックしてみてくださいね)。

 コメント記入者:

 ページ閲覧者数:1人

[ Linux ] 一覧へ


<< 2010年9月
2010年9月10日(金)
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

 最近の書き込み

クレヨンしんちゃん
  <2010-09-10 13:59:04>
Webalizer
  <2010-09-08 19:44:15>
向上備忘録
  <2010-09-07 15:31:19>
Poderosa
  <2010-09-07 14:37:35>
ブレイブボード
  <2010-09-07 09:20:48>
口内炎
  <2010-09-06 16:29:56>
ACアダプタ
  <2010-09-03 13:49:25>
得点力学習DS
  <2010-09-01 15:05:54>
(*)富士登山
  <2010-09-01 05:55:27>
(*)富士登山
  <2010-08-31 20:16:32>


 カテゴリー

おでかけ(79)
サッカー(44)
旅(41)
季節(33)
食べ物(33)
映画(30)
DIY(29)
家(28)
地元(28)
家族(26)
健康(24)
モバイル(22)
学校(21)
生物(20)
風景(18)
ドラマ(18)
家電(17)
Web(17)
通勤(16)
ブログ(14)
Winアプリ(14)
PCハード(14)
ゲーム(13)
Linux(12)
 ・ S.M.A.R.T.
 ・ SMTP
 ・ ネットコマンド
 ・ POP
 ・ Linuxコマンド
 ・ WebサーバのSSL化
 ・ IP aliasingとバーチャルホスト
 ・ Turbolinux 10 Server
 ・ SUSE アクティベーションコード
 ・ パーティション削除
 ・ logrotate
 ・ crontab
本(12)
足技(12)
ブラウザ(11)
ゴルフ(11)
自転車(10)
ネットワーク(10)
php(9)
javascript(9)
飲み物(8)
会社(8)
税金(7)
感銘映像(6)
VMware(5)
空想(5)
Ruby(4)
データベース(3)
perl(1)