[an error occurred while processing this directive]

Set Up Your Own CA(日本語訳)

Impress Your Friends!


このドキュメントはhttp://paradigm.webvision.com/developers/casetup.htmlの日本語訳です。 オリジナルのドキュメントははこれより新しくなっている可能性がありますのでhttp://paradigm.webvision.com/developers/casetup.htmlを見て下さい。 日本語訳に関する責任は インフォサイエンス(株)にあります。 日本語訳に関する質問、誤訳の指摘などは ssleay@infoscience.co.jp まで御連絡ください。

この日本語訳の公開を快諾していただいたWebVisionのDaveに感謝します。


ここには私が集めたいろいろな情報があり、これらをまとめるとあなたの 認証局を立ち上げることができます。 この内容を考えだしたのは私の功績ではありません;ここにあるすべてのものは ssl-users メーリングリストか ssl-talk メーリングリストからとってきたものです。 特に、自分で署名した新しいCAを作ったり、サーバーの証明書を生成し署名す る方法に関するほとんどの情報はTom Titchenerによって投稿されたものです; application/x-x509-ca-certMIMEタイプに関するヒントは Netscape Certificate Specから得たものです。 これがあることを親切に指摘してくれたのは、NetscapeのElectronic Munitions SpecialistであるJeff Weinsteinです。 最後に、Cyberstore SystemsのPat Richardはこのパズルの最後の一枚 - どうやってSSLeayによって生成されたCAを使ってNetscapeの商用サーバーの鍵に署名するか - を提供してくれました。

もし質問やコメントがありましたらdhm@webvision.comに連絡してください。

This information is provided ''as-is'', without warranty of any kind, either express or implied, including, but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.


ソフトウェア


Eric Youngの優れたSSLeayパッケージのコピーが必要です。最新のバージョンはftp://ftp.psy.uq.oz.au/pub/Crypto/SSLから入手できます。 私たちのような自由の大陸に住んでいる人は、RSAREFライブラリーをftp://www.rsa.com/rsarefから入手する必要があります -- 同じ数学的計算をするEricのルーチンを使うことはRSAの特許か何かに抵触するようです。


手続き



Configファイル


私が使っているconfigファイルのコピーが以下にあります。 上記のinstructionでは、YourCA.confという名前がつけられていることを仮定していました。


#
# YourCA configuration file
#
####################################################################
#
# Netscape Navigator displays certificate info in this format:
#
# Common Name *
# email
# Organizational Unit
# Organization *
# Locality, State, Country
#
# * - required entries
#
# Certificates are listed by Common Name in the Security Preferences
# dialogs.

RANDFILE		= $ENV::HOME/.rand

####################################################################
[ ca ]
default_ca	= CA_default		# The default ca section

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

dir		= /usr/local/etc/CA	# where everything is kept
certs		= $dir/certs		# Where the issued certs are kept
crl_dir		= $dir/crl		# Where the issued crl are kept
database	= $dir/index.txt	# database index file.
new_certs_dir	= $dir/new_certs	# default place for new certs.

certificate	= $certs/YourCA.pem 	# The CA certificate
serial		= $dir/serial 		# The current serial number
crl		= $dir/crl.pem		# The current CRL
private_key	= $dir/private/YourCA.pem # The private key
RANDFILE	= $dir/private/.rand	# private random number file

default_days	= 365			# how long to certify for
default_crl_days= 30			# how long before next CRL
default_md	= md5			# which md to use.

# A few difference way of specifying how similar the request should look
# For type CA, the listed attributes must be the same, and the optional
# and supplied fields are just that :-)

policy		= policy_match

# For the CA policy
[ policy_match ]
countryName		= optional
stateOrProvinceName	= optional
organizationName	= supplied
organizationalUnitName	= optional
commonName		= supplied
emailAddress		= optional

# For the 'anything' policy
# At this point in time, you must list all acceptable 'object'
# types.
[ policy_anything ]
countryName		= optional
stateOrProvinceName	= optional
localityName		= optional
organizationName	= supplied
organizationalUnitName	= optional
commonName		= supplied
emailAddress		= optional

####################################################################
[ req ]
default_bits		= 1024
default_keyfile 	= privkey.pem
distinguished_name	= req_distinguished_name

[ req_distinguished_name ]
countryName			= Country Name (2 letter code)
countryName_min			= 2
countryName_max			= 2

stateOrProvinceName		= State or Province Name (full name)

localityName			= Locality Name (eg, city)

organizationName		= Organization Name (eg, company)

organizationalUnitName		= Organizational Unit Name (eg, section)

commonName			= Common Name (the name of your machine)
commonName_max			= 64

emailAddress			= Email Address
emailAddress_max		= 40

CA証明書をダウンロードするためのCGIスクリプト

もちろん、私はこのスクリプトがセキュアではないことを知っています。 あなたはこれをテスト以外には使うべきではありません。 なぜなら、これはあなたのシステムのpublicly-readableファイルをとっていくことを誰にでも許してしまうからです。 これは、証明書をダウンロードするために何が起こらなければならないかを最も簡単に示すためのものです。 実際、"application/x-x509-ca-cert"をあなたのmime.typesファイルに追加するほうがおそらくもっと簡単で効果的です。


#!/bin/sh

if [ -n "$PATH_INFO" -a -r "$PATH_INFO" ]; then
	echo "Content-Type: application/x-x509-ca-cert"; echo
	cat $PATH_INFO
else
	cat << END
Content-Type: text/html

<HTML>
<HEAD><TITLE>Certificate not found!</TITLE></HEAD>
<BODY>
<P><B>Sorry, I can't find the certificate I had planned to send back.  Please
try again some other time.
</BODY>
</HTML>
END
fi

exit 0

NovaQuest InfoSystems
General Questions: 800/932-8840 | 310/793-4505; General Fax: 310/793-4462
Copyright 1996 NovaQuest Infosystems-WebVision Inc.