事前確認事項

作成する

パスフレーズ付き

openssl md5 * > rand.dat
openssl genrsa -rand rand.dat -des3 (キー長) > (秘密鍵ファイル名)
例
openssl genrsa -rand rand.dat -des3 2048 > 2010key.pem
> パスフレーズ入力(忘れずに)
openssl req -new -key (秘密鍵ファイル名) -out (CSRファイル名)
例:
openssl req -new -key 2010key.pem -out 2010csr.pem
秘密鍵のパスフレーズの入力する
一般的な事を入れる
以下は入れなくてもよい
Email Address []:
 A challenge password []:
 An optional company name []:

パスフレーズなし

openssl md5 * > rand.dat
openssl genrsa -rand rand.dat -des3 (キー長) > (秘密鍵ファイル名)
例:
openssl genrsa -rand rand.dat -out server.key 2048
openssl req -new -key server.key -out (CSRファイル名)
一般的な事を入れる
以下は入れなくてもよい
Email Address []:
 A challenge password []:
 An optional company name []:

自前局でのSSL生成

上記でcsr/keyを生成する

openssl x509 -req -in server.csr -signkey server.key -out server.crt -days 日時

LBでのSSL

LB serverA
 |
 |--Web Server B
 |--Web Server C

こんな場合SSLは、基本3台入れないと行けない。。。が!
面倒なので、B/Cでは利用するドメインの自前認証局のSSLを置く(例えば期限が10年とか)
そしてLB Server Aにはこちらを参考にしたProxy SSLを立ち上げて、どこかから買ってきたSSLを配置してあげればおk

マルチドメイン証明書

マルチドメイン証明書とは
HTTP over TLS(RFC2818) にて規定されているsubjectAltName?を利用し、複数のドメイン名が使用可。
また、RFCに準拠せず、subjectAltName?が利用できない端末向けに CN(コモンネーム)を複数登録出来るらしい。
要調査

提供サービス

確認方法

・秘密鍵内と証明書内にある "modulus" 部分が完全に一致しないとだめ!
・"modulus" 部分が一致しない場合は、秘密鍵または証明書のどちらかがだめ

外部から確認 その1

telnet サイトドメインなど 443
Trying XXX.XXX.XXX.XXX...
Connected to example.jp.
Escape character is '^]'.
HEAD ./index.html HEAD/1.0[e]<-入力
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
Reason: You're speaking plain HTTP to an SSL-enabled server port.<br />
Instead use the HTTPS scheme to access this URL, please.<br />
<blockquote>Hint: <a href="https://example.jp/"><b>https://example.jp /</b></a>
</blockquote></p>
<hr>
<address>Apache/2.2.9 (Debian) PHP/5.2.13-0.dotdeb.0 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8o Server at example.jp Port 443</address>
</body></html>
Connection closed by foreign host.

OpenSSLのversionを知ることが出来る

外部から確認その2

openssl s_client -connect www.example.jp:443

内部で確認

openssl version -a
OpenSSL 0.9.8o 01 Jun 2010
built on: Sun Jun  6 19:06:05 UTC 2010
platform: debian-i386-i686/cmov
options:  bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) blowfish(idx) 
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN 
-DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -march=i686 -Wa,--noexecstack -g -Wall 
-DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
 -DAES_ASM
OPENSSLDIR: "/usr/lib/ssl"

秘密鍵内容を確認

openssl rsa -in /etc/ssl/private/key.pem -text

証明書の確認

openssl x509 -in /etc/ssl/certs/key.pem -text

CSRの確認

openssl req -in key.csr -text

中間証明書を確認する

openssl x509 -text -noout -in ca.crt

CRLの内容確認

openssl crl -in key.crl -text
※証明書とCRLを比較する事で証明書が最新の物であることが分かる

Apache2で設定されている共通鍵暗号方式を確認する

openssl ciphers -v ‘ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW’

設定箇所

エラー時には

参考URL


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-03-12 (月) 16:54:39 (197d)