<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>寺田　佳央 - Yoshio Terada &#187; クライアント認証</title>
	<atom:link href="http://yoshio3.com/tag/%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc/feed/" rel="self" type="application/rss+xml" />
	<link>http://yoshio3.com</link>
	<description>GlassFish Web Server Java</description>
	<lastBuildDate>Fri, 25 May 2012 05:58:43 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='yoshio3.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/759d6ca62cbc626125def86454247b76?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>寺田　佳央 - Yoshio Terada &#187; クライアント認証</title>
		<link>http://yoshio3.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://yoshio3.com/osd.xml" title="寺田　佳央 - Yoshio Terada" />
	<atom:link rel='hub' href='http://yoshio3.com/?pushpress=hub'/>
		<item>
		<title>GlassFish SSLの設定(クライアント認証)</title>
		<link>http://yoshio3.com/2010/02/08/glassfish-ssl%e3%81%ae%e8%a8%ad%e5%ae%9a%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc/</link>
		<comments>http://yoshio3.com/2010/02/08/glassfish-ssl%e3%81%ae%e8%a8%ad%e5%ae%9a%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 02:44:38 +0000</pubDate>
		<dc:creator>Yoshio Terada</dc:creator>
				<category><![CDATA[Application Server/GlassFish]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[クライアント認証]]></category>
		<category><![CDATA[GlassFish]]></category>
		<category><![CDATA[SSL]]></category>

		<guid isPermaLink="false">http://yoshio3.com/?p=643</guid>
		<description><![CDATA[GlassFish のドメイン管理サーバ上でHTTP リスナーの設定をクライアント認証対応に変更 dashos [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=643&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>GlassFish のドメイン管理サーバ上でHTTP リスナーの設定をクライアント認証対応に変更</p>
<table border="1" cellspacing="0" cellpadding="4" width="100%">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP">dashost &gt; <strong>asadmin set “cluster1-config.http-service.http-listener.http-listener-2.ssl.client-auth-enabled = true”</strong><br />
</tr>
</tbody>
</table>
<p><span></span></p>
<p>クライアント証明書の秘密鍵を作成</p>
<table border="1" cellspacing="0" cellpadding="4" width="100%">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP">
ca-admin &gt; <strong>openssl genrsa -des3 -out /tmp/client-private-key 2048</strong><br />
Generating RSA private key, 2048 bit long modulus<br />
&#8230;&#8230;&#8230;.+++<br />
&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.+++<br />
e is 65537 (0&#215;10001)<br />
Enter pass phrase for /tmp/client-private-key:<br />
Verifying &#8211; Enter pass phrase for /tmp/client-private-key:</td>
</tr>
</tbody>
</table>
<p><span></span><br />
クライアント証明書用のCSRを作成</p>
<p>下記の例では便宜上，認証局(CA)上で CSR を生成していますが，CSRの生成はどの環境で構築しても問題ありません．</p>
<table border="1" cellspacing="0" cellpadding="4" width="100%">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP">ca-admin &gt; <strong>openssl req -new -days 365 -key /tmp/client-private-key -out /tmp/clientcsr.pem</strong><br />
Enter pass phrase for /tmp/client-private-key:<br />
You are about to be asked to enter information that will be incorporated<br />
into your certificate request.<br />
What you are about to enter is what is called a Distinguished Name or a DN.<br />
There are quite a few fields but you can leave some blank<br />
For some fields there will be a default value,<br />
If you enter &#8216;.&#8217;, the field will be left blank.<br />
&#8212;&#8211;<br />
Country Name (2 letter code) [AU]:<strong>JP</strong><br />
State or Province Name (full name) [Some-State]:<strong>Tokyo</strong><br />
Locality Name (eg, city) []:<strong>Setagaya</strong><br />
Organization Name (eg, company) [Internet Widgits Pty Ltd]:<strong>Sun Microsystems</strong><br />
Organizational Unit Name (eg, section) []:<strong>Software Practice</strong><br />
Common Name (eg, YOUR name) []:<strong>Tarou Yamada</strong><br />
Email Address []:<strong>Tarou.Yamada@Sun.COM</strong></p>
<p>Please enter the following &#8216;extra&#8217; attributes<br />
to be sent with your certificate request<br />
A challenge password []:<br />
An optional company name []:</td>
</tr>
</tbody>
</table>
<p><span></span><br />
認証局(CA)でクライアント証明書を署名</p>
<p>クライアント証明書のCSRを認証局(CA)で署名します。</p>
<table border="1" cellspacing="0" cellpadding="4" width="100%">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP">ca-admin &gt; <strong>openssl ca -config ./openssl-client.cnf -in /tmp/clientcsr.pem -out /tmp/signed-clientcert.pem</strong><br />
Using configuration from ./openssl-client.cnf<br />
Enter pass phrase for ./demoCA/private/cakey.pem:<br />
Check that the request matches the signatureSignature ok<br />
Certificate Details:<br />
Serial Number:<br />
cd:ea:db:f4:c8:e3:93:92<br />
Validity<br />
Not Before: Dec  4 08:27:14 2009 GMT<br />
Not After : Dec  4 08:27:14 2010 GMT<br />
(省略)</td>
</tr>
</tbody>
</table>
<p><span></span><br />
署名されたクライアント証明書をGlassFishのキーストアにインポートするため，X.509形式に変更</p>
<table border="1" cellspacing="0" cellpadding="4" width="100%">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP">ca-admin &gt; <strong>openssl x509 -in /tmp/signed-clientcert.pem -out /tmp/signed-clientcert.x509</strong></td>
</tr>
</tbody>
</table>
<p><span></span><br />
GlassFishのキーストアに対してクライアント証明書をインポート</p>
<table border="1" cellspacing="0" cellpadding="4" width="100%">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP">dashost &gt; <strong>keytool -import -alias yamada -file /tmp/signed-clientcert.x509</strong><br />
キーストアのパスワードを入力してください:[<strong>changeit</strong>]<br />
新規パスワードを再入力してください:[<strong>changeit</strong>]<br />
所有者: EMAILADDRESS=Tarou.Yamada@Sun.COM, CN=Tarou Yamada, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP<br />
発行者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP<br />
シリアル番号: cdeadbf4c8e39392<br />
有効期間の開始日: Fri Dec 04 17:27:14 JST 2009 終了日: Sat Dec 04 17:27:14 JST 2010<br />
証明書のフィンガープリント:<br />
MD5:  59:06:3C:95:79:5D:31:D7:A3:92:0E:AA:A2:23:73:6D<br />
SHA1: 26:00:30:F1:15:DB:20:D4:8E:AF:99:AB:96:13:CB:17:DA:E5:71:15<br />
署名アルゴリズム名: SHA1withRSA<br />
バージョン: 3<br />
(省略)<br />
この証明書を信頼しますか? [no]:  <strong>yes</strong><br />
証明書がキーストアに追加されました。</td>
</tr>
</tbody>
</table>
<p><span></span><br />
クライアント証明書をブラウザにインポートするためPKCS12形式に変換</p>
<table border="1" cellspacing="0" cellpadding="4" width="100%">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP">ca-admin &gt; <strong>openssl pkcs12 -export -in /tmp/signed-clientcert.pem -inkey /tmp/client-private-key -certfile ./demoCA/cacert.pem -out /tmp/clientcert.p12</strong><br />
Enter pass phrase for /tmp/client-private-key:<br />
Enter Export Password:<br />
Verifying &#8211; Enter Export Password:<br />
ca-admin &gt; <strong>ls -l /tmp/clientcert.p12</strong><br />
-rw-r&#8211;r&#8211;   1 root     root        3525 12月  4日  17:29 /tmp/clientcert.p12</td>
</tr>
</tbody>
</table>
<p><span></span><br />
最後にブラウザにPKCS12形式のクライアント証明書をインポートします．</p>
<p>上記で設定は完了です，ブラウザからアクセスしてみてください．</p>
<br />カテゴリー:<a href='http://yoshio3.com/category/application-serverglassfish/'>Application Server/GlassFish</a> Tagged: <a href='http://yoshio3.com/tag/administration/'>Administration</a>, <a href='http://yoshio3.com/tag/%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc/'>クライアント認証</a>, <a href='http://yoshio3.com/tag/glassfish/'>GlassFish</a>, <a href='http://yoshio3.com/tag/ssl/'>SSL</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/yoshioterada.wordpress.com/643/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/yoshioterada.wordpress.com/643/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/yoshioterada.wordpress.com/643/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/yoshioterada.wordpress.com/643/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/yoshioterada.wordpress.com/643/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/yoshioterada.wordpress.com/643/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/yoshioterada.wordpress.com/643/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/yoshioterada.wordpress.com/643/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/yoshioterada.wordpress.com/643/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/yoshioterada.wordpress.com/643/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/yoshioterada.wordpress.com/643/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/yoshioterada.wordpress.com/643/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/yoshioterada.wordpress.com/643/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/yoshioterada.wordpress.com/643/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=643&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yoshio3.com/2010/02/08/glassfish-ssl%e3%81%ae%e8%a8%ad%e5%ae%9a%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5b5cf8e8e2343a2915d94e1ca6f26e2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">yosshi</media:title>
		</media:content>
	</item>
		<item>
		<title>3. OpenSSLでクライアント認証「クライアント認証環境構築編」</title>
		<link>http://yoshio3.com/2008/03/19/3-openssl%e3%81%a7%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc%e3%80%8c%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc%e7%92%b0%e5%a2%83%e6%a7%8b/</link>
		<comments>http://yoshio3.com/2008/03/19/3-openssl%e3%81%a7%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc%e3%80%8c%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc%e7%92%b0%e5%a2%83%e6%a7%8b/#comments</comments>
		<pubDate>Wed, 19 Mar 2008 04:20:00 +0000</pubDate>
		<dc:creator>Yoshio Terada</dc:creator>
				<category><![CDATA[SJS Web Server 7]]></category>
		<category><![CDATA[クライアント認証]]></category>
		<category><![CDATA[Web Server]]></category>

		<guid isPermaLink="false">http://yoshioterada.wordpress.com/2008/03/19/3-openssl%e3%81%a7%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc%e3%80%8c%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc%e7%92%b0%e5%a2%83%e6%a7%8b/</guid>
		<description><![CDATA[Translate to English / Google/Yahoo 今日は、OpenSSLを使用してディレ [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=213&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Translate to English / <a href="http://translate.google.com/translate?&amp;langpair=ja|en&amp;hl=ja&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=/language_tools&amp;u=http://blogs.sun.com/yosshi/entry/web%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A7%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E8%AA%8D%E8%A8%BC%E3%82%92%E3%81%97%E3%82%88%E3%81%86">Google</a>/<a href="http://honyaku.yahoofs.jp/url_result?ctw_=sT,eCR-JE,bT,hT,uaHR0cDovL2Jsb2dzLnN1bi5jb20veW9zc2hpL2VudHJ5L3dlYiVFMyU4MiVCNSVFMyU4MyVCQyVFMyU4MyU5MCVFMyU4MSVBNyVFMyU4MiVBRiVFMyU4MyVBOSVFMyU4MiVBNCVFMyU4MiVBMiVFMyU4MyVCMyVFMyU4MyU4OCVFOCVBQSU4RCVFOCVBOCVCQyVFMyU4MiU5MiVFMyU4MSU5NyVFMyU4MiU4OCVFMyU4MSU4Ng==,qlang=ja|for=0|sp=-5|fs=100%|fb=0|fi=0|fc=FF0000|db=T|eid=CR-EJ,k409befe1281c67b0c890834e8c7af282,t20080320111730,">Yahoo</a></p>
<p>今日は、OpenSSLを使用してディレクトリサーバとブラウザにクライアント証明書をインストールして、Web サーバとブラウザ間でクライアント認証を行う方法について紹介します。</p>
<p>設定手順は下記の通りです。</p>
<p><span style="text-decoration:underline;"><strong>設定手順</strong></span></p>
<p>手順１：Web サーバとディレクトリサーバの連携設定<br />
手順２：Web サーバのHTTPリスナーの編集<br />
手順３：Web サーバのアクセスコントロールの設定<br />
手順４：Web サーバのcertmap.confの編集<br />
手順５：ディレクトリサーバの拡張設定<br />
手順６：新規ユーザの作成<br />
手順７：クライアント証明書の作成<br />
手順８：ブラウザへクライアント証明書のインストール<br />
手順９：ディレクトリサーバへクライアント証明書のインストール</p>
<table border="1" cellspacing="0" cellpadding="4" width="512">
<tbody>
<tr>
<td><span style="text-decoration:underline;"><strong>前提:</strong></span></p>
<p>ブラウザから送信されたクライアント証明書をWebサーバ側で比較するわけですが、比較対照のクライアント証明書はディレクトリサーバ側で保持します。そこで、Webサーバとディレクトリサーバの連携を行う必要があります。</p>
<p>※　Webサーバ上の静的ファイル中に証明書を保持する事もできますが、セキュアな環境を構築したい場合、外部のディレクトリサーバに証明書データを保持しておいた方が安全です。</p>
<p>※　ディレクトリサーバは既に別途インストールされている事を前提として記述します。</td>
</tr>
</tbody>
</table>
<p><span style="text-decoration:underline;"><strong>手順１：Web サーバとディレクトリサーバの連携設定</strong></span></p>
<p>Web サーバの管理画面より、「構成」→「対象の構成(sw-120)」→「アクセス制御」<br />
→「認証データベース」を選択してください。<br />
ここでは、デフォルトで「keyfile」と呼ばれる認証データベースが存在しますが、<br />
ディレクトリサーバと連携する為に、「新規」ボタンを押下してください。</p>
<p><img src="http://farm4.static.flickr.com/3067/2345246756_762c146c09.jpg" alt="" /></p>
<p>「新規」ボタンを押下すると下記の画面が表示されます。<br />
ここでディレクトリサーバに接続する為に必要な情報を入力し、「了解」ボタンを押下してください。</p>
<p><img src="http://farm3.static.flickr.com/2400/2344427451_a7c166a926.jpg" alt="" /></p>
<p>「了解」ボタンを押下すると下記の画面が表示されます。<br />
「配備保留中」リンクをクリックしてください。</p>
<p><img src="http://farm4.static.flickr.com/3130/2345253492_a142b8b4e9.jpg" alt="" /></p>
<p>「配備保留中」リンクをクリックすると下記のウィンドウが表示されます。「配備&#8230;」<br />
ボタンを押下してください。</p>
<p><img src="http://farm3.static.flickr.com/2024/2344424689_50d928d761.jpg" alt="" /></p>
<p>「配備&#8230;」ボタンを押下すると下記の画面が表示されます。<br />
「閉じる」ボタンを押下してください。</p>
<p><img src="http://farm3.static.flickr.com/2348/2344428315_57897f9b5e.jpg" alt="" /></p>
<p>「閉じる」ボタンを押下すると「認証データベース」一覧中に<br />
「LDAP-SERVER」のエントリが追加されている事を確認できます。</p>
<p><img src="http://farm4.static.flickr.com/3120/2345253580_50e2ec5190.jpg" alt="" /></p>
<p>次に、ディレクトリサーバと正常に接続ができているか確認する為に、下記の図のように<br />
「アクセス制御」の「ユーザ」タブを選択してください。<br />
「ユーザ」タブを選択すると、下記の画面が表示されます。<br />
この画面ではユーザの参照、追加、削除等の操作ができます。<br />
それでは、実際に「ユーザの検索」を行ってみましょう。<br />
「認証データベースの選択：」で「LDAP-SERVER(ldap)」を選択し、<br />
検索ボタンを押下しましょう。<br />
既存のユーザが存在している場合、検索結果に一覧が表示されます。仮に既存ユーザが<br />
存在しない場合、「新規」ボタンを押下するとディレクトリサーバに新規ユーザを<br />
追加する事もできます。</p>
<p><img src="http://farm4.static.flickr.com/3124/2344427059_f28eb24cf5.jpg" alt="" /></p>
<p>以上で、Web サーバからディレクトリサーバに対して接続ができる事が確認できました。</p>
<p><span style="text-decoration:underline;"><strong>手順２：Web サーバのHTTPリスナーの編集</strong></span></p>
<p>次に、Web サーバの対象のインスタンスにおいて、クライアント認証を受け付ける事が<br />
できるようにHTTPリスナーの設定を変更します。<br />
既にWebサーバでSSLの設定がされている必要があります。<br />
WebサーバのSSLの設定は<a href="http://blogs.sun.com/yosshi/entry/web%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%90%E8%A8%BC%E6%98%8E%E6%9B%B8%E8%A8%AD%E5%AE%9A">Webサーバのサーバ証明書設定</a>を参照してください。</p>
<p>「構成」→「対象の構成(sw-120)」→「HTTPリスナー」タブを選択し、<br />
現在有効になっているHTTPリスナー(http-listener-1)のリンクを押下してください。</p>
<p><img src="http://farm4.static.flickr.com/3122/2344426327_18ed7f92b7.jpg" alt="" /></p>
<p>リンクを押下すると下記の画面が表示されます<br />
「クライアント認証：」の「必要なディスク容量」を選択し<br />
「適用」ボタンを押下してください。</p>
<p>※「必要なディスク容量」と表示されている日本語メッセージは<br />
日本語翻訳のバグです！！<br />
英語版では「Required」と表示されているので「必須」と訳されるべきです。<br />
「適用」ボタンを押下した後、「閉じる」ボタンを押下してください。</p>
<p><img src="http://farm4.static.flickr.com/3253/2344429497_f51dfeddac.jpg" alt="" /></p>
<p>「閉じる」ボタンを押下すると下記の画面が表示されます。<br />
「配備保留中」リンクを押下してください。</p>
<p><img src="http://farm3.static.flickr.com/2247/2344429429_9c7ba60344.jpg" alt="" /></p>
<p>「配備保留中」のリンクを押下すると、下記のウィンドウが表示されます<br />
「配備&#8230;」ボタンを押下し配備して下さい。</p>
<p><img src="http://farm4.static.flickr.com/3126/2344430441_de36638633.jpg" alt="" /></p>
<p>配備が正常に完了すると下記の画面が表示されます。<br />
「閉じる」ボタンを押下し配備を終了して下さい。</p>
<p><img src="http://farm3.static.flickr.com/2310/2344418769_318da88615.jpg" alt="" /></p>
<p>これで、HTTP リスナーの設定が完了しました。<br />
以上の設定でクライアントのWeb ブラウザが443番ポートに<br />
HTTPSで接続した際に、必ずクライアント証明書を要求するようになります。</p>
<p><span style="text-decoration:underline;"><strong>手順３：Web サーバのアクセスコントロールの設定</strong></span></p>
<p>HTTPリスナーの設定が完了した後、アクセスコントロール(ACL)の設定を行いましょう。<br />
「構成」→「対象の構成(sw-120)」→「アクセス制御」→「アクセス制御リスト(ACL)」を<br />
選択してください。「アクセス制御リスト(ACL)」を選択すると下記の画面が表示されます。<br />
ここで、アクセス制御リスト中の「リソース欄」に「default」と記載された項目が<br />
表示されますので、このリンクを押下します。</p>
<p><img src="http://farm3.static.flickr.com/2302/2344416699_bd5d89b2f0.jpg" alt="" /></p>
<p>「default」のリソースを選択すると下記の画面が表示されます。<br />
ここで、「認証方法：」をSSLに変更して下さい。<br />
その後で、「アクセス制御エントリ(ACE)」中の「ACE動作」の<br />
「編集」を行います。<br />
「編集」のリンクを押下して下さい。</p>
<p>※　「default」は全てのアクセスに対する設定になります。特定のURLに対して<br />
だけアクセス制限をかけたい場合は、「新規」ボタンを押下して別途作成<br />
してください。</p>
<p><img src="http://farm4.static.flickr.com/3211/2344419361_c6a2a875cf.jpg" alt="" /></p>
<p>「編集」のリンクを押下すると下記の画面が表示されます。<br />
ここで、「ユーザとグループ」の設定を「認証データベース中<br />
のすべて」に変更して、最後に「了解」ボタンを押下してください。</p>
<p><img src="http://farm3.static.flickr.com/2063/2345258400_dd256eb6ba.jpg" alt="" /></p>
<p>「了解」ボタンを押下すると下記の画面が表示されます。<br />
再度、「認証方法：」が「SSL」になっている事を確認した後、<br />
「了解」ボタンを押下します。</p>
<p><img src="http://farm4.static.flickr.com/3273/2344429269_c43377146c.jpg" alt="" /></p>
<p>「了解」ボタンを押下すると下記の画面が表示されます。<br />
「配備保留中」のリンクを押下してください。</p>
<p><img src="http://farm3.static.flickr.com/2226/2344430385_e06ecff469.jpg" alt="" /></p>
<p>「配備保留中」のリンクを押下すると下記の画面が表示されます。<br />
「配備&#8230;」ボタンを押下してください。</p>
<p><img src="http://farm3.static.flickr.com/2296/2344429357_3cc2289889.jpg" alt="" /></p>
<p>配備が正常に終了すると下記の画面が表示されます。<br />
「閉じる」ボタンを押下して終了してください。</p>
<p><img src="http://farm3.static.flickr.com/2341/2345247940_46ac10e883.jpg" alt="" /></p>
<p>以上で、アクセスコントロールの設定が完了しました。<br />
上記までの設定を行う事により、Web サーバは接続する全てのクライアントである<br />
Webブラウザに対して、クライアント証明書を要求し、クライアント認証が完了しない<br />
リクエストは全て拒否するようになります。</p>
<p><span style="text-decoration:underline;"><strong>手順４：Web サーバのcertmap.confの編集</strong></span></p>
<p>次に、Web サーバのcertmap.confと呼ばれるファイルを編集します。<br />
この設定ファイルはWeb ブラウザから送信されるクライアントの証明書と、<br />
ディレクトリサーバ上に存在するクライアントの証明書を比較する為に必要な<br />
マッピング等の設定を行います。<br />
下記のように設定を変更して下さい。</p>
<p><span style="text-decoration:underline;">修正前：</span></p>
<table border="1" cellspacing="0" cellpadding="4" width="512">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP">&gt;<br />
<strong>vi /sun/webserver7/https-sw-120/config/certmap.conf</strong><br />
&#8230;..(前略)<br />
certmap<br />
default         default<br />
#default:DNComps<br />
#default:FilterComps e, uid<br />
#default:verifycert on<br />
#default:CmapLdapAttr certSubjectDN<br />
#default:library &lt;path_to_shared_lib_or_dll&gt;<br />
#default:InitFn &lt;Init function&#8217;s name&gt;</td>
</tr>
</tbody>
</table>
<p><span style="text-decoration:underline;">修正後：</span></p>
<table border="1" cellspacing="0" cellpadding="4" width="512">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP">&gt;<br />
<strong>vi /sun/webserver7/https-sw-120/config/certmap.conf</strong><br />
&#8230;..(前略)<br />
certmap	default default　　　　　　　　//コメントアウト<br />
default:DNComps　　　　　　　　　　//コメントアウト<br />
default:FilterComps e, <strong>cn</strong> //コメントアウト<br />
default:verifycert  on　　　　　　　　//コメントアウト<br />
default:CmapLdapAttr certSubjectDN　//コメントアウト</td>
</tr>
</tbody>
</table>
<p>certmap.confの詳細は下記URLを参照してください。</p>
<p><a href="http://docs.sun.com/app/docs/doc/819-2630/6n4thbjc4?l=Ja&amp;a=view#abumq">http://docs.sun.com/app/docs/doc/819-2630/6n4thbjc4?l=Ja&amp;a=view#abumq</a></p>
<p>certmap.conf設定ファイルを手動で変更後、管理画面に戻って「仮想サーバ」タブ、<br />
もしくは他のタブを押下して下さい。<br />
すると下記のように画面右上部に「インスタンス設定が変更されています」というリンクが<br />
表示されます。このリンクを押下して下さい。</p>
<p>※　ここで表示されるリンクは設定ファイルが手動で変更された後に管理画面の操作<br />
を行った場合に表示されるようになります。(手動設定変更の自動検知)</p>
<p><img src="http://farm3.static.flickr.com/2364/2344419555_d3d2c43220.jpg" alt="" /></p>
<p>リンクを押下すると下記の画面が表示されます。<br />
ここで、「構成を取得し配備します」を選択し、「了解」ボタンを押下してください。</p>
<p><img src="http://farm3.static.flickr.com/2187/2345253340_299a60de3d.jpg" alt="" /></p>
<p>「了解」ボタンを押下する前に、「詳細を表示」ボタンを押下すると、<br />
手動で変更されたファイル名を確認する事もできます。<br />
実際に「了解」ボタンを押下すると今回手動で設定変更を行ったのは、<br />
「config/certmap.conf」ファイルであることを確認できます。</p>
<p><img src="http://farm3.static.flickr.com/2273/2344425943_991ae142ed.jpg" alt="" /></p>
<p>「了解」ボタンを押下すると下記の画面が表示されます。<br />
「閉じる」ボタンを押下し、配備を終了してください。</p>
<p><img src="http://farm4.static.flickr.com/3044/2345256120_49672e22fb.jpg" alt="" /></p>
<p>以上でWebサーバ側のクライアント認証を行うための全ての設定は完了です。</p>
<p><span style="text-decoration:underline;"><strong>手順５：ディレクトリサーバの拡張設定</strong></span></p>
<p>Webサーバの設定が完了しましたので、次にディレクトリサーバの設定を行いましょう。<br />
今回ディレクトリサーバとして、Sun Java System Directory Server 5.2 Update 6を<br />
使用しています。同様の設定は最新の、Sun Java System Directory Server Enterprise<br />
Editionでも可能ですので、新しいバージョンを使用されている場合も、同様の設定を行ってください。<br />
まず、ディレクトリサーバの管理コンソールにログインしてください。</p>
<p><img src="http://farm4.static.flickr.com/3090/2344428621_ebc1aeed9b.jpg" alt="" /></p>
<p>次に、ディレクトリサーバのインスタンスを選択して「開く」ボタンを押下します。</p>
<p><img src="http://farm3.static.flickr.com/2153/2345246482_3fd7647efa.jpg" alt="" /></p>
<p>「開く」ボタンを押下すると下記の画面が表示されます。<br />
「設定」タブを押下し左のメニュー画面より「スキーマ」を選択してください。</p>
<p><img src="http://farm3.static.flickr.com/2242/2345246964_dae5cffccb.jpg" alt="" /></p>
<p>「スキーマ」を選択すると下記の画面が表示されます。</p>
<p><img src="http://farm3.static.flickr.com/2289/2345253636_1e258f6999.jpg" alt="" /></p>
<p>右画面より「属性」を選択し「作成」ボタンを押下してください。<br />
すると下記の画面が表示されます。<br />
ここで、「属性名：」に<strong>「certSubjectDN」</strong>を入力し、「構文：」に<strong>「DN」</strong>を選択し、「複数値」のチェックを外して「了解(O)」ボタンを押下してください。</p>
<p>※　ここで追加するLDAPの属性は、Web サーバの「certmap.conf」ファイル中に記載した</p>
<p>下記の内容に一致します。<br />
仮に「certmap.conf」の「CmapLdapAttr」で名前を変更している場合、<br />
同一の名前の属性を作成してください。</p>
<p><span style="text-decoration:underline;">certmap.conf</span></p>
<table border="1" cellspacing="0" cellpadding="4" width="512">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP">default:CmapLdapAttr <strong>certSubjectDN</strong></td>
</tr>
</tbody>
</table>
<p><img src="http://farm4.static.flickr.com/3246/2344427147_6be68971f4.jpg" alt="" /></p>
<p>「了解(O)」ボタンを押下すると下記の画面が表示されます。</p>
<p><img src="http://farm3.static.flickr.com/2204/2344419799_e8d326c83b.jpg" alt="" /></p>
<p>次に、「オブジェクトクラス」タブを選択し、新規クラスを作成します。<br />
「オブジェクトクラス」タブを押下し、「作成&#8230;」ボタンを押下してください。</p>
<p><img src="http://farm3.static.flickr.com/2350/2345253230_99240d493e.jpg" alt="" /></p>
<p>「作成&#8230;」ボタンを押下すると下記の画面が表示されます。<br />
オブジェクトクラスの「名前」に任意の名前（例：client-cert-person）を<br />
入力し、「必須属性：」に「certsubjectdn」、「許可された属性」に<br />
「usercertificate」を追加し、「了解」ボタンを押下してください。</p>
<p>※　usercertificateを必須属性にしない理由は後ほど説明します。</p>
<p><img src="http://farm3.static.flickr.com/2028/2345254342_ccb896f0fc.jpg" alt="" /></p>
<p>「了解」ボタンを押下すると下記の画面が表示されます。<br />
作成したオブジェクトクラスが存在しているか確認してください。</p>
<p><img src="http://farm3.static.flickr.com/2215/2344428243_a0f15dd038.jpg" alt="" /></p>
<p>以上でディレクトリサーバ上の設定は全て完了です。</p>
<p><span style="text-decoration:underline;"><strong>手順６：新規ユーザの作成</strong></span></p>
<p>それでは新規ユーザを登録しましょう。<br />
Web サーバの管理画面より、「構成」→「対象の構成(sw-120)」→<br />
「アクセス制御」→「ユーザ」より「新規&#8230;」ボタンを押下して下さい。</p>
<p><img src="http://farm3.static.flickr.com/2151/2345254564_abfc0a8fae.jpg" alt="" /></p>
<p>「新規」ボタンを押下すると下記の画面が表示されます。<br />
ここで必要事項に入力して「了解」ボタンを押下してください。</p>
<p><img src="http://farm4.static.flickr.com/3125/2345254204_9bf931eca6.jpg" alt="" /></p>
<p>ユーザが正常に追加されると下記の画面が表示されます。</p>
<p><img src="http://farm3.static.flickr.com/2076/2345253156_f884696d55.jpg" alt="" /></p>
<p>また、ディレクトリサーバのコンソールから確認しても<br />
ユーザが追加されている事を確認できます。</p>
<p><img src="http://farm4.static.flickr.com/3248/2344427381_eb02d639a4.jpg" alt="" /></p>
<p><span style="text-decoration:underline;"><strong>手順７：クライアント証明書の作成</strong></span></p>
<p>新規ユーザを作成したので、このユーザに対する新規クライアント証明書を作成しましょう。<br />
OpenSSLでクライアント証明書の秘密鍵を作成するには下記のコマンドを実行します。</p>
<p>下記では、トリプルDESを使い1024bitの秘密鍵(client-private-key)を生成しています。</p>
<table border="1" cellspacing="0" cellpadding="4" width="512">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP">&gt;<br />
<strong>openssl genrsa  -des3 -out client-private-key 1024</strong><br />
Generating<br />
RSA private key, 1024 bit long modulus<br />
&#8230;&#8230;&#8230;..++++++<br />
&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.++++++<br />
e<br />
is 65537 (0&#215;10001)<br />
Enter<br />
pass phrase for client-private-key:<strong>[******]</strong><br />
Verifying<br />
- Enter pass phrase for client-private-key:<strong>[******]</strong><br />
&gt;<br />
<strong>ls</strong><br />
client-private-key</td>
</tr>
</tbody>
</table>
<p>クライアントの秘密鍵を生成しましたので、次に署名要求(CSR)を作成します。<br />
下記のコマンドを実行してください。<br />
するとclientcsr.pemと呼ばれる署名要求(CSR)が生成されます。</p>
<table border="1" cellspacing="0" cellpadding="4" width="512">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP">&gt;<br />
<strong>openssl req -new -days 365 -key client-private-key -out<br />
clientcsr.pem</strong><br />
Enter pass phrase for client-private-key: <strong>[******]</strong><br />
You are about to be asked to enter information that will be<br />
incorporated into your certificate request.<br />
What you are about to enter is what is called a Distinguished Name or a<br />
DN.<br />
There are quite a few fields but you can leave some blank<br />
For some fields there will be a default value,</p>
<p>If you enter &#8216;.&#8217;, the field will be left blank.<br />
&#8212;&#8211;<br />
Country<br />
Name (2 letter code) [US]:<strong>JP</strong><br />
State or Province Name (full name) [Some-State]:<strong>Tokyo</strong><br />
Locality Name (eg, city) []:<strong>Setagaya</strong><br />
Organization Name (eg, company) [Unconfigured OpenSSL Installation]:<strong>Sun<br />
Microsystems K.K.</strong><br />
Organizational Unit Name (eg, section) []:<strong>Software Practice</strong><br />
Common Name (eg, YOUR name) []:<strong>Foo Bar</strong><br />
Email Address []:<strong>Foo.Bar@foo.bar.com</strong><br />
Please enter the following &#8216;extra&#8217; attributes<br />
to be sent with your certificate request</p>
<p>A challenge password []:<br />
An optional company name []:<br />
&gt; <strong>ls</strong><br />
client-private-key<br />
clientcsr.pem</td>
</tr>
</tbody>
</table>
<p>次に、認証局(CA)で署名を行いますが、その前に<br />
認証局(CA)の設定を一部変更してください。</p>
<table border="1" cellspacing="0" cellpadding="4" width="512">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP">&gt;<br />
<strong>cp /etc/sfw/openssl/openssl.cnf<br />
/etc/sfw/openssl/openssl-client.cnf</strong><br />
&gt;<br />
<strong>vi </strong><strong>/etc/sfw/openssl/openssl-client.cnf</strong><br />
<strong>basicConstraints=CA:FALSE<br />
&lt;&#8212;FALSE</strong><strong>より変更</strong><br />
# For normal client use this is typical<br />
<strong>nsCertType = client, email            &lt;&#8212;-</strong><strong> コメントアウト</strong></td>
</tr>
</tbody>
</table>
<p>それでは実際に、認証局(CA)でクライアント証明書の署名を行います。</p>
<table border="1" cellspacing="0" cellpadding="4" width="512">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP">
<pre>&gt;<strong>openssl ca -config /etc/sfw/openssl/openssl-client.cnf -in
./clientcsr.pem -out clientcert.pem</strong>
Using configuration from /etc/sfw/openssl/openssl-client.cnf
Enter pass phrase for /etc/sfw/openssl/private/cakey.pem:
[******]
DEBUG[load_index]: unique_subject = "yes"
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 10 (0xa)
Validity
Not Before: Mar 18 07:10:14 2008 GMT
Not After : Mar 18 07:10:14 2009 GMT
Subject:
countryName               = JP
stateOrProvinceName       = Tokyo
organizationName          = Sun Microsystems K.K.
organizationalUnitName    = Software Practice
commonName                = Foo Bar
emailAddress              = Foo.Bar@foo.bar.com
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Cert Type:
SSL Client, S/MIME
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
56:64:98:F2:33:16:62:82:2B:50:91:36:29:87:48:46:74:26:00:44
X509v3 Authority Key Identifier:
keyid:06:C7:E8:90:D1:04:7C:36:16:FE:AA:D2:B2:B6:EC:C4:13:84
:36:A1
DirName:/C=JP/ST=Tokyo/L=Setagaya/O=Sun Microsystems K.K./OU=
Software Practice/CN=Hanako Yamada/emailAddress=Hanako.Yamada@foo.bar.jp
serial:00
Certificate is to be certified until Mar 18 07:10:14 2009 GMT (365 days)
Sign the certificate? [y/n]:<strong>y</strong>
1 out of 1 certificate requests certified, commit? [y/n]<strong>y</strong>
Write out database with 1 new entries
Data Base Updated</pre>
</td>
</tr>
</tbody>
</table>
<p>上記で署名済みのクライアント証明書(clientcert.pem)が生成されました。</p>
<p><span style="text-decoration:underline;"><strong>手順８：ブラウザへクライアント証明書のインストール</strong></span></p>
<p>Web ブラウザへ証明書をインストールする為には、秘密鍵と<br />
クライアント証明書をまとめた、PKCS#12形式のファイルを作成し、<br />
PKCS#12形式のファイルをブラウザへインストールします。<br />
下記のようにクライアント証明書とクライアントの秘密鍵、<br />
認証局の証明書を使用してPKCS#12形式のファイルを作成しましょう。<br />
下記のコマンドを実行するとclientcert.p12と呼ばれる<br />
PKCS#12形式のファイルが生成されます。</p>
<table border="1" cellspacing="0" cellpadding="4" width="512">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP">&gt;<br />
<strong>ls</strong><br />
client-private-key<br />
clientcert.pem      clientcsr.pem<br />
sw-120-web<br />
&gt; <strong>openssl pkcs12 -export -in clientcert.pem -inkey<br />
client-private-key -certfile /etc/sfw/openssl/cacert.pem -out<br />
clientcert.p12</strong><br />
Enter pass phrase for client-private-key: <strong>[******]</strong><br />
Enter Export Password:<strong>[******]</strong><br />
Verifying &#8211; Enter Export Password:<strong>[******]</strong><br />
&gt; <strong>ls</strong><br />
client-private-key<br />
<strong>clientcert.p12</strong> clientcert.pem      clientcsr.pem<br />
&gt;</td>
</tr>
</tbody>
</table>
<p>上記で、PKCS#12形式の「clientcert.p12」ファイルを<br />
生成しましたので、Webブラウザにインストールしましょう。<br />
下記図のようにWebブラウザのメニューより「環境設定」→<br />
「詳細」→「暗号化」タブを選択し、「証明書を表示」ボタンを<br />
押下してください。（ブラウザがFirefoxの場合）</p>
<p><img src="http://farm4.static.flickr.com/3229/2345257106_2b2fdaa069.jpg" alt="" /></p>
<p>「証明書を表示」ボタンを押下すると下記の画面が表示されます。<br />
ここで「インポート」ボタンを押下してください。</p>
<p><img src="http://farm3.static.flickr.com/2242/2344429971_aeaefc0853.jpg" alt="" /></p>
<p>「インポート」ボタンを押下すると下記のファイルダイアログ画面が表示されます。<br />
ここで、事前に作成した、PKCS#12形式のファイル(clientcert.p12)を選択し、<br />
「開く」ボタンを押下します。</p>
<p><img src="http://farm3.static.flickr.com/2182/2344430037_34beb422c8.jpg" alt="" /></p>
<p>「開く」ボタンを押下すると下記の画面が表示されます。<br />
ここで「パスワード」欄にPKCS#12を生成する際に入力した<br />
Exportのパスワードを入力し「OK」ボタンを押下します。</p>
<p><img src="http://farm4.static.flickr.com/3103/2344416649_b5229d258f.jpg" alt="" /></p>
<p>「OK」ボタンを押下すると下記の警告画面が表示されます。<br />
「OK」ボタンを押下し終了してください。</p>
<p><img src="http://farm4.static.flickr.com/3219/2344418285_c2401ff395.jpg" alt="" /></p>
<p>「OK」ボタンを押下しすると「証明書マネージャ」に<br />
インストールされたクライアント証明書が表示されます。</p>
<p><img src="http://farm4.static.flickr.com/3014/2344425117_0b10537528.jpg" alt="" /></p>
<p>念のためクライアント証明書の内容を確認してみましょう。<br />
インストールしたクライアント証明書を選択し「表示」ボタンを押下してください。<br />
ボタンを押下すると下記の画面が表示されます。<br />
内容を確認すると、「この証明書は以下の用途に使用する証明書であると検証されました」<br />
というメッセージが表示され、一覧の中に「SSLクライアント証明書」が含まれている事を<br />
確認できます。</p>
<p><img src="http://farm4.static.flickr.com/3099/2344416971_8eb5804645.jpg" alt="" /></p>
<p>以上で、クライアントのWeb ブラウザ側の設定は完了です。</p>
<p><span style="text-decoration:underline;"><strong>手順９：ディレクトリサーバへクライアント証明書のインストール</strong></span></p>
<p>クライアント証明書より証明書のSubjectのDNを入手<br />
クライアントの証明書の中に含まれるSubjectのDNをディレクトリサーバに格納します。<br />
そしてアクセスして来たクライアントが提示したクライアント証明書よりSubjectのDNを抽出し、<br />
ディレクトリサーバ上のSubjectのDNとクライアント証明書のSubjectのDNを比較します。<br />
内容が異なる場合、アクセスを拒否します。</p>
<table border="1" cellspacing="0" cellpadding="4" width="512">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP">
<pre>&gt;<strong>openssl x509 -in clientcert.pem -text </strong>
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 10 (0xa)
Signature Algorithm: md5WithRSAEncryption
Issuer: C=JP, ST=Tokyo, L=Setagaya, O=Sun Microsystems K.K., OU=Softwa
re Practice, CN=Hanako Yamada/emailAddress=Hanako.Yamada@foo.bar.jp
Validity
Not Before: Mar 18 07:10:14 2008 GMT
Not After : Mar 18 07:10:14 2009 GMT
<strong>        Subject: C=JP, ST=Tokyo, O=Sun Microsystems K.K., OU=Software Practi
ce, CN=Foo Bar/emailAddress=Foo.Bar@foo.bar.com</strong>
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:f6:4c:58:aa:bb:2b:80:71:fb:8f:21:f9:9d:03:
07:9e:91:58:b4:3a:6a:a6:fa:74:18:89:e1:99:a9:
45:79:70:ae:46:bd:91:22:62:9f:e0:d7:fd:d7:03:
c3:9e:10:36:f2:ef:37:52:cc:92:86:fa:c1:a7:3c:
08:af:4e:43:55:94:87:a1:22:ad:26:b3:f6:1b:65:
19:fe:81:50:92:84:a0:34:7a:b4:c7:2c:3e:45:b3:
7e:76:a7:44:87:e3:4b:75:9a:64:ea:81:c9:fa:94:
43:ad:b3:7a:75:92:87:89:fe:a5:8e:c6:5b:bb:59:
8d:50:e7:8b:75:9c:3a:47:6f
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Cert Type:
SSL Client, S/MIME
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
56:64:98:F2:33:16:62:82:2B:50:91:36:29:87:48:46:74:26:00:44
X509v3 Authority Key Identifier:
keyid:06:C7:E8:90:D1:04:7C:36:16:FE:AA:D2:B2:B6:EC:C4:13:84:36:A1
DirName:/C=JP/ST=Tokyo/L=Setagaya/O=Sun Microsystems K.K./OU=So
ftware Practice/CN=Hanako Yamada/emailAddress=Hanako.Yamada@foo.bar.jp
serial:00
Signature Algorithm: md5WithRSAEncryption
4b:ec:fe:fb:c2:33:50:7c:86:bb:0d:ba:a7:c6:94:49:38:bf:
49:92:4f:c3:40:71:d7:8c:15:b0:8e:19:38:ba:87:a6:04:6d:
07:c8:fa:82:1f:11:ae:e4:2b:d8:aa:be:cf:29:e8:bf:ac:e7:
2d:42:5b:9b:2e:ff:f4:b5:d9:00:e0:4c:92:57:44:93:f5:c6:
dc:c1:7a:45:f6:20:14:9b:cd:09:e2:5f:e7:31:d7:74:d0:4c:
22:37:bd:e3:e3:39:b5:be:0e:6a:97:4f:08:8c:89:46:f8:60:
0a:f2:48:73:b3:36:8a:8d:84:bd:64:0f:d0:6d:91:2d:1b:35:
08:e5
-----BEGIN CERTIFICATE-----
MIIEAjCCA2ugAwIBAgIBCjANBgkqhkiG9w0BAQQFADCBrTELMAkGA1UEBhMCSlAx
DjAMBgNVBAgTBVRva3lvMREwDwYDVQQHEwhTZXRhZ2F5YTEeMBwGA1UEChMVU3Vu
IE1pY3Jvc3lzdGVtcyBLLksuMRowGAYDVQQLExFTb2Z0d2FyZSBQcmFjdGljZTEW
MBQGA1UEAxMNSGFuYWtvIFlhbWFkYTEnMCUGCSqGSIb3DQEJARYYSGFuYWtvLllh
bWFkYUBmb28uYmFyLmpwMB4XDTA4MDMxODA3MTAxNFoXDTA5MDMxODA3MTAxNFow
gY8xCzAJBgNVBAYTAkpQMQ4wDAYDVQQIEwVUb2t5bzEeMBwGA1UEChMVU3VuIE1p
Y3Jvc3lzdGVtcyBLLksuMRowGAYDVQQLExFTb2Z0d2FyZSBQcmFjdGljZTEQMA4G
A1UEAxMHRm9vIEJhcjEiMCAGCSqGSIb3DQEJARYTRm9vLkJhckBmb28uYmFyLmNv
bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA9kxYqrsrgHH7jyH5nQMHnpFY
tDpqpvp0GInhmalFeXCuRr2RImKf4Nf91wPDnhA28u83UsyShvrBpzwIr05DVZSH
oSKtJrP2G2UZ/oFQkoSgNHq0xyw+RbN+dqdEh+NLdZpk6oHJ+pRDrbN6dZKHif6l
jsZbu1mNUOeLdZw6R28CAwEAAaOCAUwwggFIMAkGA1UdEwQCMAAwEQYJYIZIAYb4
QgEBBAQDAgWgMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0
aWZpY2F0ZTAdBgNVHQ4EFgQUVmSY8jMWYoIrUJE2KYdIRnQmAEQwgdoGA1UdIwSB
0jCBz4AUBsfokNEEfDYW/qrSsrbsxBOENqGhgbOkgbAwga0xCzAJBgNVBAYTAkpQ
MQ4wDAYDVQQIEwVUb2t5bzERMA8GA1UEBxMIU2V0YWdheWExHjAcBgNVBAoTFVN1
biBNaWNyb3N5c3RlbXMgSy5LLjEaMBgGA1UECxMRU29mdHdhcmUgUHJhY3RpY2Ux
FjAUBgNVBAMTDUhhbmFrbyBZYW1hZGExJzAlBgkqhkiG9w0BCQEWGEhhbmFrby5Z
YW1hZGFAZm9vLmJhci5qcIIBADANBgkqhkiG9w0BAQQFAAOBgQBL7P77wjNQfIa7
DbqnxpRJOL9Jkk/DQHHXjBWwjhk4uoemBG0HyPqCHxGu5CvYqr7PKei/rOctQlub
Lv/0tdkA4EySV0ST9cbcwXpF9iAUm80J4l/nMdd00EwiN73j4zm1vg5ql08IjIlG
+GAK8khzszaKjYS9ZA/QbZEtGzUI5Q==
-----END CERTIFICATE-----</pre>
</td>
</tr>
</tbody>
</table>
<p>実際に、ディレクトリサーバに格納するSubjectのDNは上記のSubjectのDNと逆の<br />
下記の文字列を生成します。<br />
上記の<strong>強調（ボールド）</strong>文字を下記のように変換してください。</p>
<table border="1" cellspacing="0" cellpadding="4" width="512">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP"><strong>E=Foo.Bar@foo.bar.com</strong><strong>,<br />
CN=Foo Bar, OU=Software Practice, O=Sun Microsystems K.K.,<br />
ST=Tokyo,C=JP</strong></td>
</tr>
</tbody>
</table>
<p>次に、ディレクトリサーバに保存するクライアント証明書のバイナリを作成します。<br />
下記のコマンドを実行してクライアント証明書のバイナリデータ(DER形式)を作成してください。</p>
<table border="1" cellspacing="0" cellpadding="4" width="512">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP">&gt;<br />
<strong>ls</strong><br />
client-private-key<br />
clientcert.p12      clientcert.pem      clientcsr.pem<br />
&gt; <strong>openssl x509 -in clientcert.pem -outform DER -out<br />
clientcert.der</strong><br />
&gt; <strong>ls</strong><br />
client-private-key<br />
<strong>clientcert.der</strong> clientcert.p12      clientcert.pem<br />
clientcsr.pem</td>
</tr>
</tbody>
</table>
<p>ディレクトリサーバの該当のユーザにクライアント証明書と証明書のSubject DNを設定します。<br />
ディレクトリサーバの該当のユーザを選択し、右マウスクリックで「汎用エディタで編集」を<br />
選択してください。</p>
<p><img src="http://farm3.static.flickr.com/2118/2344423397_65604d0bba.jpg" alt="" /></p>
<p>汎用エディタで開くと下記の画面が表示されます。ここで、「オブジェクトクラス」に<br />
マウスカーソルをあてて「値を追加」ボタンを押下して下さい。</p>
<p><img src="http://farm3.static.flickr.com/2157/2344427279_03a0b70380.jpg" alt="" /></p>
<p>「値を追加」ボタンを押下すると下記のウィンドウが表示されます。ここで、先ほど、<br />
ディレクトリサーバに新しく追加したオブジェクトクラス「client-cert-person」を選択し、<br />
「了解」ボタンを押下します。</p>
<p><img src="http://farm4.static.flickr.com/3037/2344427537_bd9d52aefe.jpg" alt="" /></p>
<p>上記の新規オブジェクトクラスを追加すると、下記の属性が現れます。</p>
<p><img src="http://farm3.static.flickr.com/2009/2345256358_1a4217f7f9.jpg" alt="" /></p>
<p>ここには、下記のクライアント証明書のSubject DNを入力してください。</p>
<table border="1" cellspacing="0" cellpadding="4" width="512">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP"><strong>E=Foo.Bar@foo.bar.com</strong><strong>,<br />
CN=Foo Bar, OU=Software Practice, O=Sun Microsystems K.K.,<br />
ST=Tokyo,C=JP</strong></td>
</tr>
</tbody>
</table>
<p><img src="http://farm3.static.flickr.com/2204/2344424625_df09df452b.jpg" alt="" /></p>
<p>次にクライアント証明書のバイナリファイルをディレクトリサーバに保存します。<br />
証明書のバイナリファイルを追加するために、「属性の追加」ボタンを押下してください。</p>
<p><img src="http://farm4.static.flickr.com/3019/2345254396_223ed22b96.jpg" alt="" /></p>
<p>「属性の追加」ボタンを押下すると下記の画面が表示されます。ここで、「usercertificate」を<br />
選択して、「サブタイプ」の「バイナリ」を選択して「了解」ボタンを押下してください。</p>
<p><img src="http://farm3.static.flickr.com/2234/2344427347_4f6ba47d4e.jpg" alt="" /></p>
<table border="1" cellspacing="0" cellpadding="4" width="512">
<tbody>
<tr>
<td>※　「usercertificate」の属性を「必須属性」ではなく、<br />
「許可された属性」にしたのは理由があります。<br />
Web サーバがクライアント証明書のSubjectDNで<br />
パターンマッチを行った後、取得する属性は、<br />
「usercertificate」ではなく「<strong>usercertificate;binary</strong>」です。<br />
そこで、「許可された属性」で属性を追加する際に<br />
「サブタイプ」で「バイナリ」を選択しなければ<br />
なりません。「バイナリ」を選択することで<br />
「usercertificate;binary」という属性が作成されます。<br />
仮に必須属性にした場合デフォルトで、「usercetificate」<br />
になりますので、この属性にクライアント証明書の<br />
バイナリデータを入力しても「usercertificate;binary」<br />
の属性は空ですので、証明書比較に失敗し、<br />
全てのアクセスは拒否されてしまいます。<br />
<strong>属性は、「usercertificate」ではなく</strong><br />
<strong>「usercertificate;binary」になっている事を<br />
</strong><strong>確認して下さい。</strong></td>
</tr>
</tbody>
</table>
<p><span style="text-decoration:underline;">ディレクトリサーバのアクセスログより、実行された検索フィルタの確認</span></p>
<table border="1" cellspacing="0" cellpadding="4" width="512">
<tbody>
<tr>
<td>[18/Mar/2008:18:46:17 +0900] conn=252 op=1 msgId=2 &#8211; SRCH base=&#8221;dc=japan,<br />
dc=sun,dc=com&#8221; scope=2 filter=&#8221;(certSubjectDN=E=Foo.Bar@foo.bar.com,CN=Foo<br />
Bar,OU=Software Practice,O=Sun Microsystems K.K.,ST=Tokyo,C=JP)&#8221;<br />
attrs=&#8221;uid userCertificate;binary&#8221;</td>
</tr>
</tbody>
</table>
<p>「了解」ボタンを押下すると、下記の属性が追加されます。</p>
<p><img src="http://farm3.static.flickr.com/2294/2344425383_380057d639.jpg" alt="" /></p>
<p>上記は、ラジオボタンの「属性の名前を表示」を選択すると表示されます。</p>
<p><img src="http://farm3.static.flickr.com/2362/2344424965_ecab095a5b.jpg" alt="" /></p>
<p>次に「値の設定」のボタンを押下してください。ボタンを押下すると下記の画面が表示されます。<br />
ここで、事前に入手したクライアント証明書のバイナリ(DER)を指定して「了解」ボタンを押下します。</p>
<table border="1" cellspacing="0" cellpadding="4" width="512">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP">&gt; <strong>ls</strong><br />
client-private-key<br />
<strong>clientcert.der</strong> clientcert.p12      clientcert.pem<br />
clientcsr.pem</td>
</tr>
</tbody>
</table>
<p><img src="http://farm3.static.flickr.com/2045/2345254280_25617dd855.jpg" alt="" /></p>
<p>「了解」ボタンを押下すると下記の画面に戻りますので、「了解」ボタンを押下して終了してください。</p>
<p><img src="http://farm4.static.flickr.com/3165/2345255294_be02f8fe4a.jpg" alt="" /></p>
<p>以上で、クライアント認証に必要な全てのデータの登録は完了です。<br />
実際にユーザの情報が正常に登録されているかldapsearchコマンドを使用し確認してみましょう。</p>
<table border="1" cellspacing="0" cellpadding="4" width="512">
<col width="256*"></col>
<tbody>
<tr>
<td width="100%" valign="TOP">&gt;<strong>ldapsearch -h localhost -p 389 -b &#8220;dc=japan,dc=sun,dc=com&#8221;<br />
-D &#8220;cn=Directory Manager&#8221; -w adminadmin &#8220;(uid=foobar)&#8221;</strong></p>
<pre>version: 1
dn: uid=foobar,ou=People,dc=japan,dc=sun,dc=com
telephoneNumber: +81-3-1234-5678
sn: Bar
title: Solution Architect
givenName: Foo
uid: foobar
mail: Foo.Bar@foo.bar.com
cn: Foo Bar
userPassword: {SSHA}wWRFRscPqeZgMiKlih1VcRem5G1dQFBxqWLRfw==
objectClass: top
objectClass: person
objectClass: organizationalperson
objectClass: inetorgperson
objectClass: client-cert-persion
certSubjectDN: E=Foo.Bar@foo.bar.com, CN=Foo Bar, OU=Software Practice, O=Sun
Microsystems K.K., ST=Tokyo,C=JP
userCertificate;binary:: MIIEAjCCA2ugAwIBAgIBCjANBgkqhkiG9w0BAQQFADCBrTELMAkG
A1UEBhMCSlAxDjAMBgNVBAgTBVRva3lvMREwDwYDVQQHEwhTZXRhZ2F5YTEeMBwGA1UEChMVU3Vu
IE1pY3Jvc3lzdGVtcyBLLksuMRowGAYDVQQLExFTb2Z0d2FyZSBQcmFjdGljZTEWMBQGA1UEAxMN
SGFuYWtvIFlhbWFkYTEnMCUGCSqGSIb3DQEJARYYSGFuYWtvLllhbWFkYUBmb28uYmFyLmpwMB4X
DTA4MDMxODA3MTAxNFoXDTA5MDMxODA3MTAxNFowgY8xCzAJBgNVBAYTAkpQMQ4wDAYDVQQIEwVU
b2t5bzEeMBwGA1UEChMVU3VuIE1pY3Jvc3lzdGVtcyBLLksuMRowGAYDVQQLExFTb2Z0d2FyZSBQ
cmFjdGljZTEQMA4GA1UEAxMHRm9vIEJhcjEiMCAGCSqGSIb3DQEJARYTRm9vLkJhckBmb28uYmFy
LmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA9kxYqrsrgHH7jyH5nQMHnpFYtDpqpvp0
GInhmalFeXCuRr2RImKf4Nf91wPDnhA28u83UsyShvrBpzwIr05DVZSHoSKtJrP2G2UZ/oFQkoSg
NHq0xyw+RbN+dqdEh+NLdZpk6oHJ+pRDrbN6dZKHif6ljsZbu1mNUOeLdZw6R28CAwEAAaOCAUww
ggFIMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgWgMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NM
IEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUVmSY8jMWYoIrUJE2KYdIRnQmAEQwgdoG
A1UdIwSB0jCBz4AUBsfokNEEfDYW/qrSsrbsxBOENqGhgbOkgbAwga0xCzAJBgNVBAYTAkpQMQ4w
DAYDVQQIEwVUb2t5bzERMA8GA1UEBxMIU2V0YWdheWExHjAcBgNVBAoTFVN1biBNaWNyb3N5c3Rl
bXMgSy5LLjEaMBgGA1UECxMRU29mdHdhcmUgUHJhY3RpY2UxFjAUBgNVBAMTDUhhbmFrbyBZYW1h
ZGExJzAlBgkqhkiG9w0BCQEWGEhhbmFrby5ZYW1hZGFAZm9vLmJhci5qcIIBADANBgkqhkiG9w0B
AQQFAAOBgQBL7P77wjNQfIa7DbqnxpRJOL9Jkk/DQHHXjBWwjhk4uoemBG0HyPqCHxGu5CvYqr7P
Kei/rOctQlubLv/0tdkA4EySV0ST9cbcwXpF9iAUm80J4l/nMdd00EwiN73j4zm1vg5ql08IjIlG
+GAK8khzszaKjYS9ZA/QbZEtGzUI5Q==</pre>
</td>
</tr>
</tbody>
</table>
<p>最後に、ブラウザからWeb サーバに対して接続が可能か確認してみましょう。<br />
作成したクライアント証明書を指定して「OK」ボタンを押下してください。</p>
<p><img src="http://farm3.static.flickr.com/2097/2344426489_e3e837fef2.jpg" alt="" /></p>
<p>下記のように表示されれば正常にクライアント認証後にアクセスができています。</p>
<p><img src="http://farm3.static.flickr.com/2247/2345248030_e27748260e.jpg" alt="" /></p>
<p>以上で、クライアント認証を行うために必要な設定はすべて完了です。<br />
Webサーバ、もしくはProxyサーバをDMZに配置して、クライアント認証を<br />
完了したユーザだけ、後段のアプリケーションサーバが提供するサービスを<br />
うける為には、上記のような設定を行い実現できます。<br />
リバース機能を設定する場合は、上記の設定を行った後で設定を行ってください。<br />
ちなみに上記の設定は、他にSun Java System Proxy Server4.0.xでも同じような手順で設定を行います。<br />
Web サーバ、Proxyサーバでクライアント認証を実現したい方は是非、本エントリを<br />
是非参考にして頂ければと思います。</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/yoshioterada.wordpress.com/213/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/yoshioterada.wordpress.com/213/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/yoshioterada.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/yoshioterada.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/yoshioterada.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/yoshioterada.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/yoshioterada.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/yoshioterada.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/yoshioterada.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/yoshioterada.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/yoshioterada.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/yoshioterada.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/yoshioterada.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/yoshioterada.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/yoshioterada.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/yoshioterada.wordpress.com/213/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=213&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yoshio3.com/2008/03/19/3-openssl%e3%81%a7%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc%e3%80%8c%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc%e7%92%b0%e5%a2%83%e6%a7%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5b5cf8e8e2343a2915d94e1ca6f26e2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">yosshi</media:title>
		</media:content>

		<media:content url="http://farm4.static.flickr.com/3067/2345246756_762c146c09.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2400/2344427451_a7c166a926.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3130/2345253492_a142b8b4e9.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2024/2344424689_50d928d761.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2348/2344428315_57897f9b5e.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3120/2345253580_50e2ec5190.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3124/2344427059_f28eb24cf5.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3122/2344426327_18ed7f92b7.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3253/2344429497_f51dfeddac.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2247/2344429429_9c7ba60344.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3126/2344430441_de36638633.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2310/2344418769_318da88615.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2302/2344416699_bd5d89b2f0.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3211/2344419361_c6a2a875cf.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2063/2345258400_dd256eb6ba.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3273/2344429269_c43377146c.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2226/2344430385_e06ecff469.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2296/2344429357_3cc2289889.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2341/2345247940_46ac10e883.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2364/2344419555_d3d2c43220.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2187/2345253340_299a60de3d.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2273/2344425943_991ae142ed.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3044/2345256120_49672e22fb.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3090/2344428621_ebc1aeed9b.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2153/2345246482_3fd7647efa.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2242/2345246964_dae5cffccb.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2289/2345253636_1e258f6999.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3246/2344427147_6be68971f4.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2204/2344419799_e8d326c83b.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2350/2345253230_99240d493e.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2028/2345254342_ccb896f0fc.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2215/2344428243_a0f15dd038.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2151/2345254564_abfc0a8fae.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3125/2345254204_9bf931eca6.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2076/2345253156_f884696d55.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3248/2344427381_eb02d639a4.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3229/2345257106_2b2fdaa069.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2242/2344429971_aeaefc0853.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2182/2344430037_34beb422c8.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3103/2344416649_b5229d258f.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3219/2344418285_c2401ff395.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3014/2344425117_0b10537528.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3099/2344416971_8eb5804645.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2118/2344423397_65604d0bba.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2157/2344427279_03a0b70380.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3037/2344427537_bd9d52aefe.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2009/2345256358_1a4217f7f9.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2204/2344424625_df09df452b.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3019/2345254396_223ed22b96.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2234/2344427347_4f6ba47d4e.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2294/2344425383_380057d639.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2362/2344424965_ecab095a5b.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2045/2345254280_25617dd855.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3165/2345255294_be02f8fe4a.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2097/2344426489_e3e837fef2.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2247/2345248030_e27748260e.jpg" medium="image" />
	</item>
		<item>
		<title>2. OpenSSLでクライアント認証「HTTPSサーバ構築編」</title>
		<link>http://yoshio3.com/2008/03/13/2-openssl%e3%81%a7%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc%e3%80%8chttps%e3%82%b5%e3%83%bc%e3%83%90%e6%a7%8b%e7%af%89%e7%b7%a8%e3%80%8d/</link>
		<comments>http://yoshio3.com/2008/03/13/2-openssl%e3%81%a7%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc%e3%80%8chttps%e3%82%b5%e3%83%bc%e3%83%90%e6%a7%8b%e7%af%89%e7%b7%a8%e3%80%8d/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 22:10:00 +0000</pubDate>
		<dc:creator>Yoshio Terada</dc:creator>
				<category><![CDATA[SJS Web Server 7]]></category>
		<category><![CDATA[クライアント認証]]></category>
		<category><![CDATA[OpenSSL]]></category>
		<category><![CDATA[Web Server]]></category>

		<guid isPermaLink="false">http://yoshioterada.wordpress.com/2008/03/13/2-openssl%e3%81%a7%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc%e3%80%8chttps%e3%82%b5%e3%83%bc%e3%83%90%e6%a7%8b%e7%af%89%e7%b7%a8%e3%80%8d/</guid>
		<description><![CDATA[Translate to English / Google 前回は、Solaris 10に付属するOpenSS [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=215&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Translate to English / <A HREF="http://translate.google.com/translate?&amp;langpair=ja|en&amp;hl=ja&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=/language_tools&amp;u=http://blogs.sun.com/yosshi/entry/web%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%90%E8%A8%BC%E6%98%8E%E6%9B%B8%E8%A8%AD%E5%AE%9A">Google</A><BR><BR><br />
前回は、Solaris 10に付属するOpenSSLで認証局を作成しました。<BR><br />
そこで、今回は作成した認証局でサーバ証明書を署名し、<BR><br />
Sun Java System Web Serverにサーバ証明書をインストールする手順までを<BR><br />
紹介します。<BR><br />
<BR><br />
<BR><br />
1. まず、はじめにWeb サーバ上で認証局でサーバ証明書を署名する為に<BR><br />
　　証明書署名要求(CSR)を作成します。<BR><br />
<BR><br />
Web サーバの管理画面より、構成より対象のインスタンス(ここではsw-120)を選択し、<BR><br />
「証明書」タブより、「サーバ証明書」タブを押下します。<BR><br />
すると、サーバ証明書の設定の画面で、「要求 &#8230;」ボタンがありますので、<BR><br />
「要求 &#8230;」ボタンを押下します。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3137/2331711967_37b195db12.jpg?v=0"><BR><br />
<BR><br />
「要求 &#8230;」ボタンを押下すると下記の画面が表示されます。ここでは使用可能なトークンを<BR><br />
選択する事ができます。<BR><br />
<BR><br />
トークンは、例えば、<A HREF="http://www.sun.com/products/networking/sslaccel/suncryptoaccel6000/">Sun Crypto Accelerator 6000</A>や、Sun Fire T2000のようなT1プロセッサ等の<BR><br />
H/Wのアクセラレータを使用するような場合に使用します。<BR><br />
<BR><br />
このようなH/Wアクセラレータを使用する場合は、トークンを作成しますが、<BR><br />
このウィザードの画面では、それぞれの用途に応じたトークンを選択する事になります。<BR><br />
仮に、Webサーバ以外の物を使用しない場合は、デフォルトの「internal」を選択して下さい。<BR><br />
今回は、Webサーバの中に暗号を保存しますので、「internal」を選択します。<BR><br />
選択した後、「次へ」ボタンを押下してください。<BR><br />
<BR><br />
補足：<BR><br />
<A HREF="http://docs.sun.com/app/docs/doc/820-1615/6nd9a40g5?l=ja&amp;a=view">WebサーバのSSLパフォーマンス</A><BR><br />
SSLの処理は暗号解析等を行うため、非常にシステムに対して負荷の掛かる作業を行っています。<BR><br />
そこで、SSLの処理を外部のH/Wアクセラレータ等を使用する事により、HTTPS通信における<BR><br />
パフォーマンスを向上させる事ができます。<BR><br />
<BR><br />
また、現在RSAによる暗号化が主流ですが、将来的にはECC(楕円暗号化曲線)のアルゴリズムが主流<BR><br />
になる事が予想されます。<BR><br />
<BR><br />
ECC(楕円曲線暗号)を使用する事によりRSAに比べ、暗号化強度を向上しても暗号化キーのサイズが<BR><br />
少なく済むため、ネットワーク帯域的にも、SSL処理に対する負荷も軽減できるようになります。<BR><br />
SJS Web Server 7.0 はこのECC もサポートしています。(RSAの場合、暗号化強度を高めるためには<BR><br />
キーサイズを大きくするしか方法はありませんが、ECCは、適用する曲線の選択を変更するだけです。<BR><br />
暗号化強度を強くしたい場合もサイズは比例して大きくなる事はありませんので、より暗号化強度が<BR><br />
必要な環境、もしくは大量のSSL通信が発生する環境の方がECCのメリットを実感できるようになります。)<BR><br />
<BR><br />
Sun Java System Web Server 7.0 は下記をサポートしています。<BR><br />
<BR><br />
Solaris 10 オペレーティングシステムを使用している場合は、カーネル SSL (KSSL) が使用できます。<BR><br />
SSL 用の暗号化カードハードウェアアクセラレータ(SCA 6000等)を使用してパフォーマンスを向上させることもできます。<BR><br />
Solaris で 64 ビットの Web Server を使用している場合は、UltraSPARC T1 プロセッサの暗号化アクセラレータを使用できます。<BR><br />
<BR><br />
<A HREF="http://docs.sun.com/app/docs/doc/820-1615/6nd9a40g5?l=ja&amp;a=view">docs.sun.comより：SSLパフォーマンス</A><BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3076/2331712111_29d3a14476.jpg?v=0"><BR><br />
<BR><br />
<BR><br />
<BR><br />
<BR><br />
「次へ」ボタンを押下すると下記の画面が表示されます。ここでは、Webサーバの詳細を入力します。<BR><br />
ここで、注意すべき点は、組織 (o) の項目です。この部分は認証局(CA)を構築した際に、<BR><br />
Organization Name (eg, company)で指定した、組織名と完全一致する必要があります。<BR><br />
仮に異なる名前を入力した場合、認証局(CA)での署名に失敗しますので、注意して下さい。<BR><br />
<BR></p>
<table width="508.0" cellspacing="0" cellpadding="0" BORDER="1">
<tbody>
<tr>
<td valign="top" class="td1">
Organization Name (eg, company) [Unconfigured OpenSSL Installation]:<b>Sun Microsystems K.K.</b><BR><br />
&lt;/TD</TR></TBODY></TABLE><br />
<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3002/2331709419_50364b23ca.jpg"><BR><br />
<BR><br />
次に、証明書のキーの種類を選択します。Sun Java System Web Server 7.0では、RSA,ECCを<BR><br />
サポートしていますので、何れかを選択して「次へ」ボタンを押下して下さい。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3181/2332537486_660d6d5821.jpg?v=0"><BR><br />
<BR><br />
<BR><br />
<BR><br />
<img src="http://farm3.static.flickr.com/2235/2331709097_42a363713b.jpg?v=0"><BR><br />
<BR><br />
「次へ」ボタンを押下すると、下記の画面が表示されます。下記の画面は入力した内容を最終確認する画面です。<BR><br />
入力した内容に問題がない場合は、「完了」ボタンを押下して下さい。<BR><br />
<BR><br />
<img src="http://farm3.static.flickr.com/2409/2331709559_9b4efe9a96.jpg"><BR><br />
<BR><br />
「完了」ボタンを押下すると、下記の画面が表示されます。下記の画面はWebサーバから、認証局(CA)に対して<BR><br />
リクエストする「証明書署名要求(CSR)」の画面になります。ここで表示される、「BEGIN NEW CERTIFICATE REQUEST」から<BR><br />
「END NEW CERTIFICATE REQUEST」までの箇所をマウスで選択しコピー（Ctrl + C）して下さい。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3238/2331709661_3d0b4f7974.jpg?v=0"><BR><br />
<BR><br />
コピーした上記の内容をファイルに保存してください。<BR><br />
<BR></p>
<table width="508.0" cellspacing="0" cellpadding="0" BORDER="1">
<tbody>
<tr>
<td valign="top" class="td1">
&gt; <b>pwd</b><BR><br />
/.vfrCA/work/ssl/CA/server<BR><br />
&gt; <b>vi csr.pem</b><BR><br />
<PRE><br />
&#8212;&#8211;BEGIN NEW CERTIFICATE REQUEST&#8212;&#8211;<br />
MIIB+zCCAWQCAQAwgYsxCzAJBgNVBAYTAkpQMQ4wDAYDVQQIEwVUb2t5bzERMA8G<br />
A1UEBxMIU2V0YWdheWExHjAcBgNVBAoTFVN1biBNaWNyb3N5c3RlbXMgSy5LLjEa<br />
MBgGA1UECxMRU29mdHdhcmUgUHJhY3RpY2UxHTAbBgNVBAMTFHN3LTEyMC5qYXBh<br />
bi5zdW4uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDTAgjVmg7Hqxp3<br />
18bhJP2WvDGXu62Pm7M+igkbQPz0KYiBpSqE9ur4N5J6WrTvECcG8GSzsqoQlRCo<br />
MB9st1KEi9wvgbAgJRYrh3nv+G/B11jocZ731CzHnMS9hbRC8xC4P+mUz1RJMqkv<br />
djJe5HUM3sx49yOLmK+bC7mXm2f6kwIDAQABoC8wLQYJKoZIhvcNAQkOMSAwHjAc<br />
BgNVHREEFTATggZzdy0xMjCCCXdlYnNlcnZlcjANBgkqhkiG9w0BAQUFAAOBgQC4<br />
NnM6s5pUGXu9nRcbCFV/yiH+Es1hIqcDzyC44exBCXpSWkdfj0ezcujLI+/Poe3V<br />
pY5+BoaUPeqIus9dYJhqu07ANU2B1mZDNys8koizRqWMpFH2Kz0XGrlNQIXWWoa2<br />
TyTt+glQhcvzHGnrC5Xpe+3QktmRk7P2uGVi3Ir3bg==<BR><br />
&#8212;&#8211;END NEW CERTIFICATE REQUEST&#8212;&#8211;<BR><br />
</PRE><br />
&gt;<BR>
</td>
</tr>
</tbody>
</table>
<p><BR><br />
ファイルに保存した後、上記画面の「閉じる」ボタンを押下します。ボタンを押下すると<BR><br />
下記の画面が表示されますので、「配備保留中」のリンクを押下して下さい。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3269/2332539770_cb733316b2.jpg"><BR><br />
<BR><br />
「配備保留中」のリンクを押下すると下記の新規ウィンドウが表示されます。ここで、「配備 &#8230;」ボタンを押下<BR><br />
して下さい。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3040/2331710181_450dd4d04b.jpg?v=0"><BR><br />
<BR><br />
「配備 &#8230;」ボタンを押下すると下記の画面が表示されます。ここで「インスタンスを再起動」で「今すぐ」を<BR><br />
選択し、「了解 &#8230;」ボタンを押下して下さい。<BR><br />
以上で、Sun Java System Web Server 上に自動的に秘密鍵が生成され、「証明書署名要求(CSR)」までが<BR><br />
生成されました。<BR><br />
<BR><br />
<img src="http://farm3.static.flickr.com/2301/2331711031_d45fcb09b3.jpg?v=0"><BR><br />
<BR><br />
次に、上記で作成した証明書署名要求(CSR)を元に、認証局(CA)で実際に署名を行う方法を紹介します。<BR><br />
まず、既存のopenssl.confのコピーを生成し、サーバ証明書を作成する為に若干設定変更を行います。<BR><br />
<BR></p>
<table width="508.0" cellspacing="0" cellpadding="0" BORDER="1">
<tbody>
<tr>
<td valign="top" class="td1">
&gt; <b>cp /etc/sfw/openssl/openssl.cnf /etc/sfw/openssl/openssl-server.cnf</b><BR>
</td>
</tr>
</tbody>
</table>
<p><BR></p>
<table width="508.0" cellspacing="0" cellpadding="0" BORDER="1">
<tbody>
<tr>
<td valign="top" class="td1">
&gt; <b>vi /etc/sfw/openssl/openssl-server.cnf</b><BR><br />
<b>basicConstraints=CA:FALSE &lt;&#8212;FALSE</b><b>に変更</b><BR><br />
# This is OK for an SSL server.<BR><br />
<b>nsCertType = server</b> <b>&lt;&#8212;&#8212;&#8212;-</b><b>　ここをコメント会うと</b><BR>
</td>
</tr>
</tbody>
</table>
<p><BR><br />
さてそれでは実際に、認証局で署名を行いましょう。<BR><br />
-config には先ほど修正したファイルを指定します。<BR><br />
-in にはWebサーバで生成した証明書署名要求(CSR)を指定します。<BR><br />
-keyfile には認証局の秘密鍵を指定します。<BR><br />
-cert には認証局の証明書を指定します。<BR><br />
-out には署名済みのWebサーバの生成されたサーバ証明書を指定します。<BR><br />
<BR></p>
<table width="508.0" cellspacing="0" cellpadding="0" BORDER="1">
<tbody>
<tr>
<td valign="top" class="td1">
&gt; <b>openssl ca -config /etc/sfw/openssl/openssl-server.cnf -in ./csr.pem -keyfile<BR> /etc/sfw/openssl/private/cakey.pem -cert /etc/sfw/openssl/cacert.pem -out cert.pem</b><BR><br />
<PRE><br />
Using configuration from /etc/sfw/openssl/openssl-server.cnf<br />
29833:error:0E06D06C:configuration file routines:NCONF_get_string:no value:<br />
/on10/build-nd/F10U4B12b/usr/src/common/openssl/crypto/conf/conf_lib.c:329:<br />
group=CA_default name=unique_subject<br />
Enter pass phrase for /etc/sfw/openssl/private/cakey.pem:<br />
Check that the request matches the signature<br />
Signature ok<br />
Certificate Details:<br />
Serial Number: 1 (0&#215;1)<br />
Validity<br />
Not Before: Mar 11 06:05:20 2008 GMT<br />
Not After : Mar 11 06:05:20 2009 GMT<br />
Subject:<br />
countryName = JP<br />
stateOrProvinceName = Tokyo<br />
organizationName = Sun Microsystems K.K.<br />
organizationalUnitName = Software Practice<br />
commonName = sw-120.japan.sun.com<br />
X509v3 extensions:<br />
X509v3 Basic Constraints:<br />
CA:FALSE<br />
Netscape Cert Type:<br />
SSL Server<br />
Netscape Comment:<br />
OpenSSL Generated Certificate<br />
X509v3 Subject Key Identifier:<br />
3C:08:1D:CA:8C:90:54:DB:F3:39:4F:E8:15:C3:90:4C:94:40:1C:D0<br />
X509v3 Authority Key Identifier:<br />
keyid:36:1F:D0:6B:95:99:BC:CB:FE:D9:C5:E6:F0:27:6B:36:96:89:E5:B0<br />
DirName:/C=JP/ST=Tokyo/L=Setagaya/O=Sun Microsystems K.K./OU=Software<br />
Practice/CN=Hanako Yamada/emailAddress=Hanako.Yamada@foo.bar.jp<br />
serial:00<br />
Certificate is to be certified until Mar 11 06:05:20 2009 GMT (365 days)<br />
Sign the certificate? [y/n]:<b>y</b><br />
1 out of 1 certificate requests certified, commit? [y/n]<b>y</b><br />
Write out database with 1 new entries<br />
Data Base Updated<br />
</PRE>
</td>
</tr>
</tbody>
</table>
<p><BR><br />
ここで生成されたWeb サーバの証明書の中身を確認してみましょう。<BR><br />
<BR></p>
<table width="508.0" cellspacing="0" cellpadding="0" BORDER="1">
<tbody>
<tr>
<td valign="top" class="td1">
&gt; <b>cat cert.pem</b><BR><br />
<PRE><br />
Certificate:<br />
Data:<br />
Version: 3 (0&#215;2)<br />
Serial Number: 1 (0&#215;1)<br />
Signature Algorithm: md5WithRSAEncryption<br />
Issuer: C=JP, ST=Tokyo, L=Setagaya, O=Sun Microsystems K.K., OU=Software<br />
Practice, CN=Hanako Yamada/emailAddress=Hanako.Yamada@foo.bar.jp<br />
Validity<br />
Not Before: Mar 11 06:05:20 2008 GMT<br />
Not After : Mar 11 06:05:20 2009 GMT<br />
Subject: C=JP, ST=Tokyo, O=Sun Microsystems K.K., OU=Software Practice,<br />
CN=sw-120.japan.sun.com<br />
Subject Public Key Info:<br />
Public Key Algorithm: rsaEncryption<br />
RSA Public Key: (1024 bit)<br />
Modulus (1024 bit):<br />
00:d3:02:08:d5:9a:0e:c7:ab:1a:77:d7:c6:e1:24:<br />
fd:96:bc:31:97:bb:ad:8f:9b:b3:3e:8a:09:1b:40:<br />
fc:f4:29:88:81:a5:2a:84:f6:ea:f8:37:92:7a:5a:<br />
b4:ef:10:27:06:f0:64:b3:b2:aa:10:95:10:a8:30:<br />
1f:6c:b7:52:84:8b:dc:2f:81:b0:20:25:16:2b:87:<br />
79:ef:f8:6f:c1:d7:58:e8:71:9e:f7:d4:2c:c7:9c:<br />
c4:bd:85:b4:42:f3:10:b8:3f:e9:94:cf:54:49:32:<br />
a9:2f:76:32:5e:e4:75:0c:de:cc:78:f7:23:8b:98:<br />
af:9b:0b:b9:97:9b:67:fa:93<br />
Exponent: 65537 (0&#215;10001)<br />
X509v3 extensions:<br />
X509v3 Basic Constraints:<br />
<b>CA:FALSE</b><br />
Netscape Cert Type:<br />
<b>SSL Server</b><br />
Netscape Comment:<br />
OpenSSL Generated Certificate<br />
X509v3 Subject Key Identifier:<br />
3C:08:1D:CA:8C:90:54:DB:F3:39:4F:E8:15:C3:90:4C:94:40:1C:D0<br />
X509v3 Authority Key Identifier:<br />
keyid:36:1F:D0:6B:95:99:BC:CB:FE:D9:C5:E6:F0:27:6B:36:96:89:E5:B0<br />
DirName:/C=JP/ST=Tokyo/L=Setagaya/O=Sun Microsystems K.K./OU=Software<br />
Practice/CN=Hanako Yamada/emailAddress=Hanako.Yamada@foo.bar.jp<br />
serial:00<br />
Signature Algorithm: md5WithRSAEncryption<br />
89:19:7f:25:55:3b:00:23:33:42:95:67:be:13:22:16:ba:46:<br />
c1:a4:d0:73:df:96:47:c8:2c:63:a9:50:7c:02:30:32:69:39:<br />
1f:1f:c6:fc:5e:4d:e2:28:7b:a5:ba:ba:43:67:c0:72:6a:58:<br />
f6:87:c4:02:5e:48:4d:a8:2b:79:1e:1a:14:03:aa:0e:62:7c:<br />
9d:2e:d6:1f:15:d6:bd:75:59:d0:41:05:8d:a6:0c:24:11:b4:<br />
c2:87:e0:87:ca:d8:ca:b4:5d:d5:87:b0:97:83:25:da:46:0c:<br />
32:17:0d:30:9d:55:62:19:fe:9f:96:1f:d8:99:57:6d:4d:31:<br />
55:05<br />
&#8212;&#8211;BEGIN CERTIFICATE&#8212;&#8211;<br />
MIID6jCCA1OgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBrTELMAkGA1UEBhMCSlAx<br />
DjAMBgNVBAgTBVRva3lvMREwDwYDVQQHEwhTZXRhZ2F5YTEeMBwGA1UEChMVU3Vu<br />
IE1pY3Jvc3lzdGVtcyBLLksuMRowGAYDVQQLExFTb2Z0d2FyZSBQcmFjdGljZTEW<br />
MBQGA1UEAxMNSGFuYWtvIFlhbWFkYTEnMCUGCSqGSIb3DQEJARYYSGFuYWtvLllh<br />
bWFkYUBmb28uYmFyLmpwMB4XDTA4MDMxMTA2MDUyMFoXDTA5MDMxMTA2MDUyMFow<br />
eDELMAkGA1UEBhMCSlAxDjAMBgNVBAgTBVRva3lvMR4wHAYDVQQKExVTdW4gTWlj<br />
cm9zeXN0ZW1zIEsuSy4xGjAYBgNVBAsTEVNvZnR3YXJlIFByYWN0aWNlMR0wGwYD<br />
VQQDExRzdy0xMjAuamFwYW4uc3VuLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw<br />
gYkCgYEA0wII1ZoOx6sad9fG4ST9lrwxl7utj5uzPooJG0D89CmIgaUqhPbq+DeS<br />
elq07xAnBvBks7KqEJUQqDAfbLdShIvcL4GwICUWK4d57/hvwddY6HGe99Qsx5zE<br />
vYW0QvMQuD/plM9USTKpL3YyXuR1DN7MePcji5ivmwu5l5tn+pMCAwEAAaOCAUww<br />
ggFIMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZAMCwGCWCGSAGG+EIBDQQf<br />
Fh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUPAgdyoyQ<br />
VNvzOU/oFcOQTJRAHNAwgdoGA1UdIwSB0jCBz4AUNh/Qa5WZvMv+2cXm8CdrNpaJ<br />
5bChgbOkgbAwga0xCzAJBgNVBAYTAkpQMQ4wDAYDVQQIEwVUb2t5bzERMA8GA1UE<br />
BxMIU2V0YWdheWExHjAcBgNVBAoTFVN1biBNaWNyb3N5c3RlbXMgSy5LLjEaMBgG<br />
A1UECxMRU29mdHdhcmUgUHJhY3RpY2UxFjAUBgNVBAMTDUhhbmFrbyBZYW1hZGEx<br />
JzAlBgkqhkiG9w0BCQEWGEhhbmFrby5ZYW1hZGFAZm9vLmJhci5qcIIBADANBgkq<br />
hkiG9w0BAQQFAAOBgQCJGX8lVTsAIzNClWe+EyIWukbBpNBz35ZHyCxjqVB8AjAy<br />
aTkfH8b8Xk3iKHulurpDZ8Byalj2h8QCXkhNqCt5HhoUA6oOYnydLtYfFda9dVnQ<br />
QQWNpgwkEbTCh+CHytjKtF3Vh7CXgyXaRgwyFw0wnVViGf6flh/YmVdtTTFVBQ==<br />
&#8212;&#8211;END CERTIFICATE&#8212;&#8211;<br />
</PRE><br />
&gt;<BR>
</td>
</tr>
</tbody>
</table>
<p><BR><br />
以上で、認証局(CA)による署名済みのサーバ証明書が生成されました。<BR><br />
署名済みのサーバ証明書が生成されましたので、ここで生成された証明書を<BR><br />
Web サーバにインストールしましょう。<BR><br />
Web サーバの管理画面より、「構成」→「対象の構成(sw-120)」を選択し、「証明書」タブを<BR><br />
選択後、「サーバ証明書」を選択して下さい。<BR><br />
「サーバ証明書」タブを選択すると「インストール &#8230;」ボタンが表示されますので、ボタンを<BR><br />
押下します。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3190/2332536268_6fa8c17f4a.jpg"><BR><br />
「インストール &#8230;」ボタンを押下すると下記の画面が表示されます。ここでトークンを選択し、<BR><br />
「次へ」ボタンを押下して下さい。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3001/2331711309_ebd4025c6e.jpg"><BR><br />
<BR><br />
「次へ」ボタンを押下すると下記の画面が表示されます。下記の画面では、署名済みの証明書から、<BR><br />
「BEGIN CERTIFICATE」から「END CERTIFICATE」までを画面内にコピー＆ペーストして貼付けます。<BR><br />
コピー＆ペーストした後「次へ」ボタンを押下して下さい。<BR><br />
<BR><br />
<img src="http://farm3.static.flickr.com/2336/2331713079_ddd422dda6.jpg"><BR><br />
<BR><br />
「次へ」ボタンを押下すると下記の画面が表示されます。ここでは、Web サーバに保存する証明書の<BR><br />
ニックネームを入力します。<BR><br />
分かり易いニックネームを入力して、「次へ」ボタンを押下して下さい。<BR><br />
<BR><br />
<img src="http://farm3.static.flickr.com/2307/2331712469_93832f9b18.jpg?v=0"><BR><br />
<BR><br />
「次へ」ボタンを押下すると下記の画面を表示されます。ここではインストールする証明書の内容を<BR><br />
確認する画面になります。<BR><br />
問題がない場合は、「完了」ボタンを押下してください。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3052/2332536536_4e599c7dc9.jpg?v=0"><BR><br />
<BR><br />
「完了」ボタンを押下すると下記の画面が表示されます。「Installation of Certificate successful」が<BR><br />
表示されれば、正常に認証局(CA)で署名されたサーバ証明書がインストールされています。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3076/2332539690_b23c673dd9.jpg"><BR><br />
<BR><br />
<BR><br />
「完了」ボタンを押下すると、下記の画面が表示されます。ここで、「配備保留中」のリンクを押下して下さい。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3269/2332539770_cb733316b2.jpg"><BR><br />
<BR><br />
「配備保留中」のリンクを押下すると下記の新規ウィンドウが表示されます。ここで、「配備」ボタンを<BR><br />
押下して下さい。<BR><br />
<BR><br />
<img><BR><br />
<BR><br />
「配備」ボタンを押下した後、下記の画面が表示されますので、「了解」ボタンを押下し、<BR><br />
インスタンスを再起動して下さい。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3119/2332537852_ac2f4a1af4.jpg?v=0"><BR><br />
「了解」ボタンを押下して下さい。ボタンを押下すると下記の画面が表示されます。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3096/2331713241_c2955715e3.jpg"><BR><br />
<BR><br />
「閉じる」ボタンを押下すると、画面に下記のように表示されます。サーバ証明書が正常にインストール<BR><br />
されているか画面より確認して下さい。<BR><br />
<img src="http://farm3.static.flickr.com/2363/2332540128_0f62d1031d.jpg?v=0"><BR><br />
<BR><br />
上記までで、Web サーバのサーバ証明書のインストールが完了しました。しかしこの状態ではまだ、HTTPSの<BR><br />
通信ができません。そこで、HTTPSの通信ができるようにHTTPリスナーの設定を変更してみましょう。<BR><br />
「構成」→「対象の構成(sw-120)」を選択した後、「HTTPリスナー」タブを選択して下さい。<BR><br />
インスタンス中に存在する、HTTPのリスナー(http-listener-1)を選択して下さい。<BR><br />
<BR><br />
<img src="http://farm3.static.flickr.com/2047/2332537062_aa32b1ba0d.jpg"><BR><br />
<BR><br />
HTTP リスナーを選択すると下記の画面が表示されます。ここで、「SSL」のタブを選択して下さい。<BR><br />
<BR><br />
補足：<BR><br />
サーバ証明書の署名要求で設定した「サーバ名(cn)」と同一のサーバ名が下記で設定されていることを<BR><br />
確認して下さい。仮に署名要求で設定したサーバ名と、HTTPリスナー内のサーバ名が異なる場合は、<BR><br />
正常なサーバと認識されない為、サーバ名には御注意ください。<BR><br />
また、HTTPSのデフォルトのポート番号は443になります。443以外のポート番号が指定されている場合、<BR><br />
（デフォルトでは80等）はHTTPSの通信ができるように443に変更して「適用」ボタンを押下して先の手順に<BR><br />
進んでください。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3010/2331712333_75fe62d3a8.jpg?v=0"><BR><br />
<BR><br />
「SSL」のタブを押下すると下記の画面に切り替わります。ここで、「SSL」のチェックボックスにチェックを付け<BR><br />
「適用」ボタンを押下して下さい。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3254/2331710763_5904b5c2f8.jpg?v=0"><BR><br />
<BR><br />
「適用」ボタンを押下すると下記の画面が表示されます。「配備保留中」のリンクを押下して下さい。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3244/2332540334_a80ebc38e0.jpg?v=0"><BR><br />
<BR><br />
「配備保留中」リンクを押下すると、下記の新規ウィンドウが表示されます。ここで、「配備」ボタンを<BR><br />
押下して下さい。<BR><br />
<BR><br />
<img src="http://farm3.static.flickr.com/2238/2332537136_8e8d6c7df2.jpg?v=0"><BR><br />
<BR><br />
「配備」ボタンを押下すると下記の画面が表示されます。「インスタンスを再起動　今すぐ」にチェックを付け<BR><br />
「了解」ボタンを押下して下さい。<BR><br />
<BR><br />
<img src="http://farm3.static.flickr.com/2341/2331713611_838a3dea5c.jpg?v=0"><BR><br />
<BR><br />
「了解」ボタンを押下した後、下記の画面が表示されます。「閉じる」ボタンを押下し、<BR><br />
完了して下さい。<BR><br />
<BR><br />
<img src="http://farm3.static.flickr.com/2012/2331711585_39c0827cc4.jpg?v=0"><BR><br />
<BR><br />
次に、認証局(CA)の証明書をWeb サーバにインストールします。管理画面から「構成」→<BR><br />
「対象の構成(sw-120)」→「証明書」タブより「認証局」タブを押下して下さい。<BR><br />
すると下記の画面が表示されます。ここで「インストールボタン」を押下し認証局(CA)の証明書を<BR><br />
インストールする事ができます。<BR><br />
<BR><br />
<img src="///Pasted%20Graphic.tiff" alt="Pasted Graphic.tiff"><BR><br />
<BR><br />
「インストール」ボタンを押下すると下記の画面が表示されます。トークンを選択し、「次へ」ボタンを<BR><br />
押下して下さい。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3286/2331712743_2ea2c1ff2d.jpg?v=0"><BR><br />
<BR><br />
「次へ」ボタンを押下すると下記の画面が表示されます。この画面で認証局(CA)の証明書を貼付けます。<BR><br />
証明書を貼付けた後「次へ」ボタンを押下してください。<BR><br />
<BR><br />
<img src="http://farm3.static.flickr.com/2342/2331710387_bfd17cc8cd.jpg?v=0"><BR><br />
<BR><br />
認証局(CA)の証明書の入手先ですが、OpenSSLのディレクトリ配下にcacert.pemというファイルがありますので、<BR><br />
こちらの「BEGIN CERTIFICATE」から「END CERTIFICATE」までをコピー＆ペースとしてご利用ください。<BR><br />
<BR></p>
<table width="508.0" cellspacing="0" cellpadding="0" BORDER="1">
<tbody>
<tr>
<td valign="top" class="td1">
&gt; <b>less /etc/sfw/openssl/cacert.pem &lt;&#8211;</b><b>このファイルの内容を表示</b><BR><br />
<PRE><br />
&#8212;&#8211;BEGIN CERTIFICATE&#8212;&#8211;<br />
MIID4jCCA0ugAwIBAgIBADANBgkqhkiG9w0BAQQFADCBrTELMAkGA1UEBhMCSlAx<br />
DjAMBgNVBAgTBVRva3lvMREwDwYDVQQHEwhTZXRhZ2F5YTEeMBwGA1UEChMVU3Vu<br />
IE1pY3Jvc3lzdGVtcyBLLksuMRowGAYDVQQLExFTb2Z0d2FyZSBQcmFjdGljZTEW<br />
MBQGA1UEAxMNSGFuYWtvIFlhbWFkYTEnMCUGCSqGSIb3DQEJARYYSGFuYWtvLllh<br />
bWFkYUBmb28uYmFyLmpwMB4XDTA4MDMxMTA1MzgxM1oXDTA5MDMxMTA1MzgxM1ow<br />
ga0xCzAJBgNVBAYTAkpQMQ4wDAYDVQQIEwVUb2t5bzERMA8GA1UEBxMIU2V0YWdh<br />
eWExHjAcBgNVBAoTFVN1biBNaWNyb3N5c3RlbXMgSy5LLjEaMBgGA1UECxMRU29m<br />
dHdhcmUgUHJhY3RpY2UxFjAUBgNVBAMTDUhhbmFrbyBZYW1hZGExJzAlBgkqhkiG<br />
9w0BCQEWGEhhbmFrby5ZYW1hZGFAZm9vLmJhci5qcDCBnzANBgkqhkiG9w0BAQEF<br />
AAOBjQAwgYkCgYEAwrSQg6m9CizA7xXjS3yVAgUNklxKuM9uKT8foOby72RmTfvR<br />
Uoi3dwUI00JxQDvBvmZPElOcL1qk6H7HEMCAffAJkPvvyBCTFNKH0GgIvCaSyQX1<br />
tmx7IVpeae+jwKVRhwUwsz8X+njXdF9rhtwIPTq8QRj+G4BOtWVKPLet/PUCAwEA<br />
AaOCAQ4wggEKMB0GA1UdDgQWBBQ2H9BrlZm8y/7ZxebwJ2s2lonlsDCB2gYDVR0j<br />
BIHSMIHPgBQ2H9BrlZm8y/7ZxebwJ2s2lonlsKGBs6SBsDCBrTELMAkGA1UEBhMC<br />
SlAxDjAMBgNVBAgTBVRva3lvMREwDwYDVQQHEwhTZXRhZ2F5YTEeMBwGA1UEChMV<br />
U3VuIE1pY3Jvc3lzdGVtcyBLLksuMRowGAYDVQQLExFTb2Z0d2FyZSBQcmFjdGlj<br />
ZTEWMBQGA1UEAxMNSGFuYWtvIFlhbWFkYTEnMCUGCSqGSIb3DQEJARYYSGFuYWtv<br />
LllhbWFkYUBmb28uYmFyLmpwggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEE<br />
BQADgYEAjo9baqRceGPaZkKWm8eFSooa/b5cinz3v7qKxZKmKhsjZhyFne7BXCqY<br />
umtzgycAgXkKzLyeyL/RulXtde1oubCIfAlzEhD3hp1MBbJ4/Pw7I6ixyf1kkrf7<br />
+aJ3/KQBZrclXK1aGyjnQKOQE2XHGewUf+Ouk6v7B+TrERivZF0=<br />
&#8212;&#8211;END CERTIFICATE&#8212;&#8211;<br />
</PRE>
</td>
</tr>
</tbody>
</table>
<p><BR><br />
「次へ」ボタンを押下すると下記の画面が表示されます。ここでは認証局(CA)の証明書をインストールしていますので、<BR><br />
「CA 証明書」のラジオボタンにチェックを付け「次へ」ボタンを押下します。<BR><br />
<BR><br />
<img src="http://farm3.static.flickr.com/2251/2331710535_3c0ed8540d.jpg"><BR><br />
<BR><br />
「次へ」ボタンを押下すると下記の画面が表示されます。ここではインストールする認証局(CA)の証明書の確認を<BR><br />
行います。サブジェクトや発行者に記載されている内容を確認し「完了」ボタンを押下して下さい。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3232/2331709943_bd94979532.jpg"><BR><br />
<BR><br />
「完了」ボタンを押下すると下記の画面が表示されます。「閉じる」ボタンを押下しインストールウィザードを終了して下さい。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3258/2332538656_aba74a2451.jpg"><BR><br />
<BR><br />
下記の画面では認証局(CA)の証明書が正しくインストールされているかを確認しています。インストールした認証局(CA)の<BR><br />
証明書は一覧の最後のエントリに記載されてますので、確認を行う際にはページを移動して確認を行ってください。<BR><br />
<BR><br />
<img src="http://farm3.static.flickr.com/2382/2331713495_dc4c1799a4.jpg"><BR><br />
<BR><br />
確認が終わった後、「配備保留中」のリンクを押下して下さい。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3220/2331710089_31b868a294.jpg"><BR><br />
<BR><br />
「配備」を行った後、インスタンスを再起動する必要がありますので、画面の内容に従い<BR><br />
インスタンスを再起動して下さい。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3009/2331710903_d1877d614e.jpg?v=0"><BR><br />
<BR><br />
<BR><br />
以上で、Web サーバに対するサーバ証明書のインストール作業は全て完了です。<BR><br />
この状態で、信頼されたHTTPS通信が可能なWeb サーバの構築が完了です。<BR><br />
<BR><br />
<BR><br />
次は、クライアントのブラウザからHTTPSの通信ができるかを確認してみましょう。<BR><br />
実際にクライアントのブラウザからアクセスする前に、ブラウザで１点だけ準備する事があります。<BR><br />
それは、認証局(CA)の証明書をブラウザにインストールしなければならない点です。<BR><br />
<DL><DD><br />
現在、Web サーバは自前のOpenSSLで構築した認証局(CA)で署名されたサーバ証明書を利用してHTTPSの<br />
通信ができるように設定が完了していますが、クライアントのブラウザは自前で構築したOpenSSLの認証局(CA)<br />
を信頼する設定にはなっておりません。そこで、OpenSSLの認証局(CA)で署名された全ての証明書を信頼する為に<br />
クライアントのブラウザに対しても認証局(CA)の証明書をインストールする必要があります。<br />
以下に、ブラウザに認証局(CA)の証明書のインストール手順を記載します。<br />
ちなみに、下記はFirefoxを例にして記述しています。<br />
Firefoxのメニューより、「環境設定」を選択して下さい。すると下記のような新規ウィンドウが表示されます。<br />
この中で、「詳細」→「暗号化」タブを選択し、「証明書を表示」ボタンを押下して下さい。<br />
</DL><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3022/2331711183_d69b4130a7.jpg"><BR><br />
<BR><br />
「証明書を表示」ボタンを押下すると下記のような画面が表示されます。この中で「認証局証明書」タブを<BR><br />
選択し「インポート」ボタンを押下して下さい。<BR><br />
<BR><br />
<img src="http://farm4.static.flickr.com/3191/2332539398_b815717f0f.jpg?v=0"><BR><br />
<BR><br />
「インポート」ボタンを押下するとファイルダイアログが表示されますので、事前に認証局(CA)より<BR><br />
FTP等で入手しておいたcacert.pemを指定して「開く」ボタンを押下します。<BR><br />
<BR><br />
<img src="http://farm3.static.flickr.com/2212/2332540530_7c46d6fd33.jpg?v=0"><BR><br />
<BR><br />
ボタンを押下すると下記の画面が表示されますので、全てのチェックボックスにチェックを付け<BR><br />
「OK」ボタンを押下して認証局(CA)のインストールを完了します。<BR><br />
<BR><br />
<img src="http://farm3.static.flickr.com/2207/2332538992_4e0c73a248.jpg?v=0"><BR><br />
<BR><br />
認証局(CA)の証明書が正しくインストールされているかを確認してみましょう。<BR><br />
下記のように、証明書名と発行者名中に独自で作成した証明書が表示されていれば問題ありません。<BR><br />
念のため、証明書を確認してみましょう。対象の署名書を選択し「表示」ボタンを押下してください。<BR><br />
<BR><br />
<img src="http://farm3.static.flickr.com/2106/2331713311_3c592f975b.jpg?v=0"><BR><br />
<BR><br />
「表示」ボタンを押下すると下記の画面が表示されます。この認証局(CA)の証明書では、<BR><br />
認証局で署名された、クライアント証明書やサーバ証明書、メール署名者の証明書、メール受信者の<BR><br />
証明書等を信頼できるようになっています。<BR><br />
<BR><br />
<img src="http://farm3.static.flickr.com/2305/2332538870_2b03b5e54c.jpg?v=0"><BR><br />
<BR><br />
以上で、クライアントであるブラウザ側の準備も完了しました。<BR><br />
それでは、実際にブラウザからWebサーバにHTTPSで通信を行ってみましょう。<BR><br />
警告画面等が表示されずに正常にHTTPSの通信ができたでしょうか？<BR><br />
ブラウザの鍵の絵の部分をダブルクリックすると「ページ情報」を表示する画面が表示されます。<BR><br />
内容を確認すると、このサイトへの接続は検証されており、信頼していますというメッセージが<BR><br />
表示されているかと思います。<BR><br />
<BR><br />
<img src="http://farm3.static.flickr.com/2259/2332539976_94b79c9508.jpg?v=0"><BR><br />
<BR><br />
<BR><br />
以上で、OpenSSLを使用したセキュアなWebサーバの構築が完了です。<BR><br />
次回は、いよいよクライアント認証の設定方法について紹介します。<BR><br />
<BR><br />
<BR><br />
すいません、体裁が悪くて、これから外出で直前でアップしましたので、<BR><br />
体裁は後で綺麗にしなおします。<BR><br />
<BR></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/yoshioterada.wordpress.com/215/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/yoshioterada.wordpress.com/215/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/yoshioterada.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/yoshioterada.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/yoshioterada.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/yoshioterada.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/yoshioterada.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/yoshioterada.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/yoshioterada.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/yoshioterada.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/yoshioterada.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/yoshioterada.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/yoshioterada.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/yoshioterada.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/yoshioterada.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/yoshioterada.wordpress.com/215/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=215&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yoshio3.com/2008/03/13/2-openssl%e3%81%a7%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc%e3%80%8chttps%e3%82%b5%e3%83%bc%e3%83%90%e6%a7%8b%e7%af%89%e7%b7%a8%e3%80%8d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5b5cf8e8e2343a2915d94e1ca6f26e2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">yosshi</media:title>
		</media:content>

		<media:content url="http://farm4.static.flickr.com/3137/2331711967_37b195db12.jpg?v=0" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3076/2331712111_29d3a14476.jpg?v=0" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3002/2331709419_50364b23ca.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3181/2332537486_660d6d5821.jpg?v=0" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2235/2331709097_42a363713b.jpg?v=0" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2409/2331709559_9b4efe9a96.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3238/2331709661_3d0b4f7974.jpg?v=0" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3269/2332539770_cb733316b2.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3040/2331710181_450dd4d04b.jpg?v=0" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2301/2331711031_d45fcb09b3.jpg?v=0" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3190/2332536268_6fa8c17f4a.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3001/2331711309_ebd4025c6e.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2336/2331713079_ddd422dda6.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2307/2331712469_93832f9b18.jpg?v=0" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3052/2332536536_4e599c7dc9.jpg?v=0" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3076/2332539690_b23c673dd9.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3269/2332539770_cb733316b2.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3119/2332537852_ac2f4a1af4.jpg?v=0" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3096/2331713241_c2955715e3.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2363/2332540128_0f62d1031d.jpg?v=0" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2047/2332537062_aa32b1ba0d.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3010/2331712333_75fe62d3a8.jpg?v=0" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3254/2331710763_5904b5c2f8.jpg?v=0" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3244/2332540334_a80ebc38e0.jpg?v=0" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2238/2332537136_8e8d6c7df2.jpg?v=0" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2341/2331713611_838a3dea5c.jpg?v=0" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2012/2331711585_39c0827cc4.jpg?v=0" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3286/2331712743_2ea2c1ff2d.jpg?v=0" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2342/2331710387_bfd17cc8cd.jpg?v=0" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2251/2331710535_3c0ed8540d.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3232/2331709943_bd94979532.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3258/2332538656_aba74a2451.jpg" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2382/2331713495_dc4c1799a4.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3220/2331710089_31b868a294.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3009/2331710903_d1877d614e.jpg?v=0" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3022/2331711183_d69b4130a7.jpg" medium="image" />

		<media:content url="http://farm4.static.flickr.com/3191/2332539398_b815717f0f.jpg?v=0" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2212/2332540530_7c46d6fd33.jpg?v=0" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2207/2332538992_4e0c73a248.jpg?v=0" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2106/2331713311_3c592f975b.jpg?v=0" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2305/2332538870_2b03b5e54c.jpg?v=0" medium="image" />

		<media:content url="http://farm3.static.flickr.com/2259/2332539976_94b79c9508.jpg?v=0" medium="image" />
	</item>
		<item>
		<title>1. OpenSSLでクライアント認証「認証局(CA)構築編」</title>
		<link>http://yoshio3.com/2008/03/12/1-openssl%e3%81%a7%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc%e3%80%8c%e8%aa%8d%e8%a8%bc%e5%b1%80ca%e6%a7%8b%e7%af%89%e7%b7%a8%e3%80%8d/</link>
		<comments>http://yoshio3.com/2008/03/12/1-openssl%e3%81%a7%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc%e3%80%8c%e8%aa%8d%e8%a8%bc%e5%b1%80ca%e6%a7%8b%e7%af%89%e7%b7%a8%e3%80%8d/#comments</comments>
		<pubDate>Wed, 12 Mar 2008 11:35:00 +0000</pubDate>
		<dc:creator>Yoshio Terada</dc:creator>
				<category><![CDATA[Application Server/GlassFish]]></category>
		<category><![CDATA[クライアント認証]]></category>
		<category><![CDATA[OpenSSL]]></category>
		<category><![CDATA[Web Server]]></category>

		<guid isPermaLink="false">http://yoshioterada.wordpress.com/2008/03/12/1-openssl%e3%81%a7%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc%e3%80%8c%e8%aa%8d%e8%a8%bc%e5%b1%80ca%e6%a7%8b%e7%af%89%e7%b7%a8%e3%80%8d/</guid>
		<description><![CDATA[Translate to English by Google さて今日から数回の連載で、Sun Java Sy [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=218&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Translate to English by <A HREF="http://translate.google.com/translate?&amp;langpair=ja|en&amp;hl=ja&amp;ie=UTF-8&amp;oe=UTF-8&amp;prev=/language_tools&amp;u=http://blogs.sun.com/yosshi/entry/%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E8%AA%8D%E8%A8%BC%E3%82%92%E8%A1%8C%E3%81%A3%E3%81%9F%E5%BE%8C_%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%82%92%E6%8F%90%E4%BE%9B%E3%81%97%E3%82%88%E3%81%86">Google</A><br />
<BR><br />
<BR><br />
さて今日から数回の連載で、Sun Java System Web Server 7.0の<BR><br />
リバースプロキシの機能、もしくはSun Java System<BR><br />
Application Server 9.1 with HADBに付属するロードバランサプラグイン<BR><br />
をSun Java System Web Server 7.0にインストールして、<BR><br />
前段(DMZ)にWeb Serverを置いて、Web Serverでクライアント認証を<BR><br />
行わさせた後に、後段のApplication Serverの提供するサービスを<BR><br />
利用できるようにする方法について紹介していきたいと思います。<BR><br />
<br />
今回、構成するネットワーク構成としては下記のイメージになります。<BR><br />
<br />
<IMG SRC="http://blogs.sun.com/yosshi/resource/AS91Env.png"><BR><br />
<br />
まず、はじめにクライアント認証を行うために、証明書を認証局(CA)で署名しますが、<BR><br />
今回は、Solaris 10に付属するOpenSSLを使用して、自前で認証局を構築し、<BR><br />
その後で、Web Serverのサーバ証明書やクライアント証明書を作成<BR><br />
していく方法を紹介していきます。<BR><br />
<br />
まず、はじめに、Solaris 10に付属するOpenSSLを使用して、<BR><br />
認証局を構築する方法から紹介して行きたいと思います。<BR><br />
<br />
Solaris 10には既にOpenSSLのコマンドやライブラリがインストール<BR><br />
されています。(/usr/sfw/bin/openssl)<BR><br />
また、各種設定ファイルは/etc/sfw/openssl配下に存在しています。<BR><br />
<br />
まずは、認証局(CA)を構築する為に下記のファイルを修正して下さい。<BR><br />
<BR><br />
<U>OpenSSLの設定ファイルの編集</U><BR><BR></p>
<table width="510.0" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td valign="top">
&gt; <b>vi /etc/sfw/openssl/openssl.cnf</b><BR><br />
<b>basicConstraints=CA:TRUE</b> &lt;&#8212;FALSEから変更<BR>
</td>
</tr>
</tbody>
</table>
<p><BR><br />
次に、実際に認証局を構築します。<BR><BR><br />
<U>OpenSSLで認証局(CA)の構築</U><BR><BR></p>
<table width="510.0" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td valign="top">
&gt; <b>/usr/sfw/bin/CA.pl -newca</b><BR><br />
CA certificate filename (or enter to create)<BR><br />
<br />
Making CA certificate &#8230;<BR><br />
Generating a 1024 bit RSA private key<BR><br />
&#8230;&#8230;&#8230;&#8230;++++++<BR><br />
&#8230;&#8230;&#8230;&#8230;.++++++<BR><br />
writing new private key to &#8216;./demoCA/private/cakey.pem&#8217;<BR><br />
Enter PEM pass phrase: <b>[********]</b><BR><br />
Verifying &#8211; Enter PEM pass phrase<b>:[********]</b><BR><br />
&#8212;&#8211;<BR><br />
You are about to be asked to enter information that will be incorporated<BR><br />
into your certificate request.<BR><br />
What you are about to enter is what is called a Distinguished Name or a DN.<BR><br />
There are quite a few fields but you can leave some blank<BR><br />
For some fields there will be a default value,<BR><br />
If you enter &#8216;.&#8217;, the field will be left blank.<BR><br />
&#8212;&#8211;<BR><br />
Country Name (2 letter code) [US]:<b>JP</b><BR><br />
State or Province Name (full name) [Some-State]:<b>Tokyo</b><BR><br />
Locality Name (eg, city) []:<b>Setagaya</b><BR><br />
Organization Name (eg, company) [Unconfigured OpenSSL Installation]:<b>Sun Microsystems K.K.</b><BR><br />
Organizational Unit Name (eg, section) []:<b>Software Practice</b><BR><br />
Common Name (eg, YOUR name) []:<b>Hanako Yamada</b><BR><br />
Email Address []:<b>Hanako.Yamada@foo.bar.jp</b><BR>
</td>
</tr>
</tbody>
</table>
<p>
コマンドを実行するとコマンドを実行したカレントディレクトリに「demoCA」と<BR><br />
呼ばれるディレクトリが生成されます。<BR><br />
<BR></p>
<table width="510.0" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td valign="top">
&gt; <b>ls</b><BR><br />
demoCA<BR><br />
&gt; <b>cd demoCA/</b><BR><br />
&gt; <b>ls</b><BR><br />
cacert.pem certs crl index.txt newcerts private serial<BR><br />
&gt; <b>cp -R * /etc/sfw/openssl/</b><BR>
</td>
</tr>
</tbody>
</table>
<p>
ここで、認証局を構築した際に、自動的に生成される認証局の証明書の中身を<BR><br />
確認してみましょう。<BR><br />
また、上記のように生成されたファイルは全て「/etc/sfw/openssl」ディレクトリ配下に<BR><br />
コピーしておいてください。<BR><br />
<br />
<U>認証局(CA)の証明書の内容の確認</U><BR><BR></p>
<table width="530.0" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td valign="top">
&gt; <b>openssl x509 -in /etc/sfw/openssl/cacert.pem -text</b><BR><br />
<PRE><br />
Certificate:<br />
Data:<br />
Version: 3 (0&#215;2)<br />
Serial Number: 0 (0&#215;0)<br />
Signature Algorithm: md5WithRSAEncryption<br />
Issuer: C=JP, ST=Tokyo, L=Setagaya, O=Sun Microsystems K.K., OU<br />
=Software Practice, CN=Hanako Yamada/emailAddress=Hanako.Yamada@<br />
foo.bar.jp<br />
Validity<br />
Not Before: Mar 11 05:38:13 2008 GMT<br />
Not After : Mar 11 05:38:13 2009 GMT<br />
Subject: C=JP, ST=Tokyo, L=Setagaya, O=Sun Microsystems K.K., OU<br />
=Software Practice, CN=Hanako Yamada/emailAddress=Hanako.Yamada@<br />
foo.bar.jp<br />
Subject Public Key Info:<br />
Public Key Algorithm: rsaEncryption<br />
RSA Public Key: (1024 bit)<br />
Modulus (1024 bit):<br />
00:c2:b4:90:83:a9:bd:0a:2c:c0:ef:15:e3:4b:7c:<br />
95:02:05:0d:92:5c:4a:b8:cf:6e:29:3f:1f:a0:e6:<br />
f2:ef:64:66:4d:fb:d1:52:88:b7:77:05:08:d3:42:<br />
71:40:3b:c1:be:66:4f:12:53:9c:2f:5a:a4:e8:7e:<br />
c7:10:c0:80:7d:f0:09:90:fb:ef:c8:10:93:14:d2:<br />
87:d0:68:08:bc:26:92:c9:05:f5:b6:6c:7b:21:5a:<br />
5e:69:ef:a3:c0:a5:51:87:05:30:b3:3f:17:fa:78:<br />
d7:74:5f:6b:86:dc:08:3d:3a:bc:41:18:fe:1b:80:<br />
4e:b5:65:4a:3c:b7:ad:fc:f5<br />
Exponent: 65537 (0&#215;10001)<br />
X509v3 extensions:<br />
X509v3 Subject Key Identifier:<br />
36:1F:D0:6B:95:99:BC:CB:FE:D9:C5:E6:F0:27:6B:36:96:89:E5:B0<br />
X509v3 Authority Key Identifier:<br />
keyid:36:1F:D0:6B:95:99:BC:CB:FE:D9:C5:E6:F0:27:6B:36:96:89:E5:B0<br />
DirName:/C=JP/ST=Tokyo/L=Setagaya/O=Sun Microsystems K.K./OU<br />
=Software Practice/CN=Hanako Yamada/emailAddress=Hanako.Yamada@<br />
foo.bar.jp<br />
serial:00<br />
X509v3 Basic Constraints:<br />
CA:TRUE<br />
Signature Algorithm: md5WithRSAEncryption<br />
8e:8f:5b:6a:a4:5c:78:63:da:66:42:96:9b:c7:85:4a:8a:1a:<br />
fd:be:5c:8a:7c:f7:bf:ba:8a:c5:92:a6:2a:1b:23:66:1c:85:<br />
9d:ee:c1:5c:2a:98:ba:6b:73:83:27:00:81:79:0a:cc:bc:9e:<br />
c8:bf:d1:ba:55:ed:75:ed:68:b9:b0:88:7c:09:73:12:10:f7:<br />
86:9d:4c:05:b2:78:fc:fc:3b:23:a8:b1:c9:fd:64:92:b7:fb:<br />
f9:a2:77:fc:a4:01:66:b7:25:5c:ad:5a:1b:28:e7:40:a3:90:<br />
13:65:c7:19:ec:14:7f:e3:ae:93:ab:fb:07:e4:eb:11:18:af:<br />
64:5d<br />
&#8212;&#8211;BEGIN CERTIFICATE&#8212;&#8211;<br />
MIID4jCCA0ugAwIBAgIBADANBgkqhkiG9w0BAQQFADCBrTELMAkGA1UEBhMCSlAx<br />
DjAMBgNVBAgTBVRva3lvMREwDwYDVQQHEwhTZXRhZ2F5YTEeMBwGA1UEChMVU3Vu<br />
IE1pY3Jvc3lzdGVtcyBLLksuMRowGAYDVQQLExFTb2Z0d2FyZSBQcmFjdGljZTEW<br />
MBQGA1UEAxMNSGFuYWtvIFlhbWFkYTEnMCUGCSqGSIb3DQEJARYYSGFuYWtvLllh<br />
bWFkYUBmb28uYmFyLmpwMB4XDTA4MDMxMTA1MzgxM1oXDTA5MDMxMTA1MzgxM1ow<br />
ga0xCzAJBgNVBAYTAkpQMQ4wDAYDVQQIEwVUb2t5bzERMA8GA1UEBxMIU2V0YWdh<br />
eWExHjAcBgNVBAoTFVN1biBNaWNyb3N5c3RlbXMgSy5LLjEaMBgGA1UECxMRU29m<br />
dHdhcmUgUHJhY3RpY2UxFjAUBgNVBAMTDUhhbmFrbyBZYW1hZGExJzAlBgkqhkiG<br />
9w0BCQEWGEhhbmFrby5ZYW1hZGFAZm9vLmJhci5qcDCBnzANBgkqhkiG9w0BAQEF<br />
AAOBjQAwgYkCgYEAwrSQg6m9CizA7xXjS3yVAgUNklxKuM9uKT8foOby72RmTfvR<br />
Uoi3dwUI00JxQDvBvmZPElOcL1qk6H7HEMCAffAJkPvvyBCTFNKH0GgIvCaSyQX1<br />
tmx7IVpeae+jwKVRhwUwsz8X+njXdF9rhtwIPTq8QRj+G4BOtWVKPLet/PUCAwEA<br />
AaOCAQ4wggEKMB0GA1UdDgQWBBQ2H9BrlZm8y/7ZxebwJ2s2lonlsDCB2gYDVR0j<br />
BIHSMIHPgBQ2H9BrlZm8y/7ZxebwJ2s2lonlsKGBs6SBsDCBrTELMAkGA1UEBhMC<br />
SlAxDjAMBgNVBAgTBVRva3lvMREwDwYDVQQHEwhTZXRhZ2F5YTEeMBwGA1UEChMV<br />
U3VuIE1pY3Jvc3lzdGVtcyBLLksuMRowGAYDVQQLExFTb2Z0d2FyZSBQcmFjdGlj<br />
ZTEWMBQGA1UEAxMNSGFuYWtvIFlhbWFkYTEnMCUGCSqGSIb3DQEJARYYSGFuYWtv<br />
LllhbWFkYUBmb28uYmFyLmpwggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEE<br />
BQADgYEAjo9baqRceGPaZkKWm8eFSooa/b5cinz3v7qKxZKmKhsjZhyFne7BXCqY<br />
umtzgycAgXkKzLyeyL/RulXtde1oubCIfAlzEhD3hp1MBbJ4/Pw7I6ixyf1kkrf7<br />
+aJ3/KQBZrclXK1aGyjnQKOQE2XHGewUf+Ouk6v7B+TrERivZF0=<br />
&#8212;&#8211;END CERTIFICATE&#8212;&#8211;</PRE>
</td>
</tr>
</tbody>
</table>
<p><BR><br />
以上で、Solaris 10を使用したOpenSSLの認証局の構築は終わりです。<BR><br />
次回は、Sun Java System Web Server 7.0のサーバ証明書を作成する方法を紹介します。<BR><br />
<BR></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/yoshioterada.wordpress.com/218/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/yoshioterada.wordpress.com/218/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/yoshioterada.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/yoshioterada.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/yoshioterada.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/yoshioterada.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/yoshioterada.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/yoshioterada.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/yoshioterada.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/yoshioterada.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/yoshioterada.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/yoshioterada.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/yoshioterada.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/yoshioterada.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/yoshioterada.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/yoshioterada.wordpress.com/218/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=218&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yoshio3.com/2008/03/12/1-openssl%e3%81%a7%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%aa%8d%e8%a8%bc%e3%80%8c%e8%aa%8d%e8%a8%bc%e5%b1%80ca%e6%a7%8b%e7%af%89%e7%b7%a8%e3%80%8d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5b5cf8e8e2343a2915d94e1ca6f26e2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">yosshi</media:title>
		</media:content>
	</item>
	</channel>
</rss>
