アトム-サイト
[ アトム-サイト ] - 管理人さんのページです。
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


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

 リンク元:
(2) : https://www.google.co.jp/

 月間ページ閲覧者数:12人

[ Linux ] 一覧へ


<< 2018年1月
2018年1月18日(木)
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 31

 最近の書き込み

SMTP
  <2016-04-06 12:03:21>
S.M.A.R.T.
  <2015-05-07 08:03:36>
POP
  <2015-04-21 11:33:37>
Linuxコマンド
  <2015-04-21 11:03:04>
アルバートオデッセイ
  <2014-08-04 23:12:12>
トイレ
  <2014-01-31 08:58:16>
(*)調光スイッチ
  <2013-09-30 10:46:11>
(*)調光スイッチ
  <2013-09-20 01:26:34>
(*)調光スイッチ
  <2013-09-17 12:21:11>
(*)調光スイッチ
  <2013-09-15 20:13:59>


 カテゴリー

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