Metaphorical Dream

2007年 04月 14日 ( 1 )

OpenSSLでCA設立2

Condition:こんなに早く予想通りの展開が訪れるとは。。。

似たようなカキコでごめん。
けど、カテゴリはIT系なので許してね。

っつ~か、こんなん覚えられるわけね~だろ?聖徳太子じゃねぇんだから(笑)

これ↓熟読するのは長野行き新幹線の中だ~ね。
http://www.ipa.go.jp/security/rfc/RFC2459JA.html

###重要###
この文書における次の各キーワード「しなければならない( MUST )」、 「してはならない( MUST NOT )」、「要求されている( REQUIRED )」、 「することになる( SHALL )」、「することはない( SHALL NOT )」、 「する必要がある( SHOULD )」、「しないほうがよい( SHOULD NOT )」、 「推奨される( RECOMMENDED )」、「してもよい( MAY )」、 「選択できる( OPTIONAL )」は、RFC 2119 で述べられているように 解釈されるべきものです。
#########

#preparation1 OpenSSL config

"/etc/pki/tls/openssl.cnf"の以下を変更。
(変更箇所には、"⇒ ")

注)あくまでも検証用かつオレのメモ書きです。
なので、F/Wで言うところのオールAccept状態です。
間違っても本番環境で使おう!なんて思わないでください。


####################################################################
[ CA_default ]

⇒ dir= ./CA

#試してみるけど、"~"ディレクトリから"openssl"を実行した場合は
#デフォルトのまま"../../CA"でもいいのかもしれない。。。


[ req_distinguished_name ]
countryName= Country Name (2 letter code)
⇒ countryName_default= 国コード 日本なら"JP"
countryName_min= 2
countryName_max= 2

stateOrProvinceName= State or Province Name (full name)
⇒ stateOrProvinceName_default= 都道府県名かな。東京なら"Tokyo"

localityName= Locality Name (eg, city)
⇒ localityName_default= 市町村&区かな。品川区なら"Shinagawa"

0.organizationName= Organization Name (eg, company)
⇒ 0.organizationName_default= 会社名かな。

# we can do this but it is not needed normally :-)
#1.organizationName= Second Organization Name (eg, company)
#1.organizationName_default= World Wide Web Pty Ltd

organizationalUnitName= Organizational Unit Name (eg, section)
⇒ organizationalUnitName_default= 部署名かな。

commonName= Common Name (eg, your name or your server\'s hostname)
commonName_max= 64

emailAddress= Email Address
emailAddress_max= 64

# SET-ex3= SET extension number 3

[ req_attributes ]
challengePassword= A challenge password
challengePassword_min= 4
challengePassword_max= 20
⇒ challengePassword_default= あなたの好きなパスワード4文字以上。入れなくてもいいかな。


[ usr_cert ]

# These extensions are added when 'ca' signs a request.

# This goes against PKIX guidelines but some CAs do it and some software
# requires this to avoid interpreting an end user certificate as a CA.

#basicConstraints=CA:FALSE
⇒ basicConstraints=CA:TRUE


[ v3_req ]

# Extensions to add to a certificate request

#basicConstraints= CA:FALSE
⇒ basicConstraints= CA:TRUE


[ proxy_cert_ext ]
# These extensions should be added when creating a proxy certificate

# This goes against PKIX guidelines but some CAs do it and some software
# requires this to avoid interpreting an end user certificate as a CA.

#basicConstraints=CA:FALSE
⇒ basicConstraints=CA:TRUE

####################################################################

#preparation2
#"/etc/pki/xpextensions"というファイル名でファイルを作成
#拡張キーに対応したOIDを追加。

[ xpclient_ext ]
extendedKeyUsage = 1.3.6.1.5.5.7.3.2

[ xpserver_ext ]
extendedKeyUsage = 1.3.6.1.5.5.7.3.1

####################################################################

#Create CA

rm -rf /etc/pki/CA
#事前に消しておいた方が不安にならずに済む

cd /etc/pki/tls/misc
./CA -newca
cd /etc/pki
openssl x509 -inform PEM -outform DER -in CA/cacert.pem -out root.der

####################################################################

#Create Srv

openssl req -new -keyout srv-key.pem -out srv-csr.pem -days 730
openssl ca -policy policy_anything -extensions xpserver_ext -extfile xpextensions -in srv-csr.pem -out srv-cert.pem
#Win鯖に取り込むなら、これで変換する。
openssl pkcs12 -export -in srv-cert.pem -inkey srv-key.pem -certfile CA/cacert.pem -out srv.p12

####################################################################

#Create Clt
#
#template
openssl req -new -keyout ${user}-key.pem -out ${user}-csr.pem -days 730
openssl ca -policy policy_anything -extensions xpclient_ext -extfile xpextensions -in ${user}-csr.pem -out ${user}-cert.pem
openssl pkcs12 -export -in ${user}-cert.pem -inkey ${user}-key.pem -certfile CA/cacert.pem -out ${user}.p12

[PR]
by mdesign21 | 2007-04-14 02:22 | IT系