Posts filed under ‘SJS Web Server 7’

2. OpenSSLでクライアント認証「HTTPSサーバ構築編」

Translate to English / Google


前回は、Solaris 10に付属するOpenSSLで認証局を作成しました。

そこで、今回は作成した認証局でサーバ証明書を署名し、

Sun Java System Web Serverにサーバ証明書をインストールする手順までを

紹介します。





1. まず、はじめにWeb サーバ上で認証局でサーバ証明書を署名する為に

  証明書署名要求(CSR)を作成します。



Web サーバの管理画面より、構成より対象のインスタンス(ここではsw-120)を選択し、

「証明書」タブより、「サーバ証明書」タブを押下します。

すると、サーバ証明書の設定の画面で、「要求 …」ボタンがありますので、

「要求 …」ボタンを押下します。







「要求 …」ボタンを押下すると下記の画面が表示されます。ここでは使用可能なトークンを

選択する事ができます。



トークンは、例えば、Sun Crypto Accelerator 6000や、Sun Fire T2000のようなT1プロセッサ等の

H/Wのアクセラレータを使用するような場合に使用します。



このようなH/Wアクセラレータを使用する場合は、トークンを作成しますが、

このウィザードの画面では、それぞれの用途に応じたトークンを選択する事になります。

仮に、Webサーバ以外の物を使用しない場合は、デフォルトの「internal」を選択して下さい。

今回は、Webサーバの中に暗号を保存しますので、「internal」を選択します。

選択した後、「次へ」ボタンを押下してください。



補足:

WebサーバのSSLパフォーマンス

SSLの処理は暗号解析等を行うため、非常にシステムに対して負荷の掛かる作業を行っています。

そこで、SSLの処理を外部のH/Wアクセラレータ等を使用する事により、HTTPS通信における

パフォーマンスを向上させる事ができます。



また、現在RSAによる暗号化が主流ですが、将来的にはECC(楕円暗号化曲線)のアルゴリズムが主流

になる事が予想されます。



ECC(楕円曲線暗号)を使用する事によりRSAに比べ、暗号化強度を向上しても暗号化キーのサイズが

少なく済むため、ネットワーク帯域的にも、SSL処理に対する負荷も軽減できるようになります。

SJS Web Server 7.0 はこのECC もサポートしています。(RSAの場合、暗号化強度を高めるためには

キーサイズを大きくするしか方法はありませんが、ECCは、適用する曲線の選択を変更するだけです。

暗号化強度を強くしたい場合もサイズは比例して大きくなる事はありませんので、より暗号化強度が

必要な環境、もしくは大量のSSL通信が発生する環境の方がECCのメリットを実感できるようになります。)



Sun Java System Web Server 7.0 は下記をサポートしています。



Solaris 10 オペレーティングシステムを使用している場合は、カーネル SSL (KSSL) が使用できます。

SSL 用の暗号化カードハードウェアアクセラレータ(SCA 6000等)を使用してパフォーマンスを向上させることもできます。

Solaris で 64 ビットの Web Server を使用している場合は、UltraSPARC T1 プロセッサの暗号化アクセラレータを使用できます。



docs.sun.comより:SSLパフォーマンス













「次へ」ボタンを押下すると下記の画面が表示されます。ここでは、Webサーバの詳細を入力します。

ここで、注意すべき点は、組織 (o) の項目です。この部分は認証局(CA)を構築した際に、

Organization Name (eg, company)で指定した、組織名と完全一致する必要があります。

仮に異なる名前を入力した場合、認証局(CA)での署名に失敗しますので、注意して下さい。


Organization Name (eg, company) [Unconfigured OpenSSL Installation]:Sun Microsystems K.K.

</TD









次に、証明書のキーの種類を選択します。Sun Java System Web Server 7.0では、RSA,ECCを

サポートしていますので、何れかを選択して「次へ」ボタンを押下して下さい。















「次へ」ボタンを押下すると、下記の画面が表示されます。下記の画面は入力した内容を最終確認する画面です。

入力した内容に問題がない場合は、「完了」ボタンを押下して下さい。







「完了」ボタンを押下すると、下記の画面が表示されます。下記の画面はWebサーバから、認証局(CA)に対して

リクエストする「証明書署名要求(CSR)」の画面になります。ここで表示される、「BEGIN NEW CERTIFICATE REQUEST」から

「END NEW CERTIFICATE REQUEST」までの箇所をマウスで選択しコピー(Ctrl + C)して下さい。







コピーした上記の内容をファイルに保存してください。


> pwd

/.vfrCA/work/ssl/CA/server

> vi csr.pem


—–BEGIN NEW CERTIFICATE REQUEST—–
MIIB+zCCAWQCAQAwgYsxCzAJBgNVBAYTAkpQMQ4wDAYDVQQIEwVUb2t5bzERMA8G
A1UEBxMIU2V0YWdheWExHjAcBgNVBAoTFVN1biBNaWNyb3N5c3RlbXMgSy5LLjEa
MBgGA1UECxMRU29mdHdhcmUgUHJhY3RpY2UxHTAbBgNVBAMTFHN3LTEyMC5qYXBh
bi5zdW4uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDTAgjVmg7Hqxp3
18bhJP2WvDGXu62Pm7M+igkbQPz0KYiBpSqE9ur4N5J6WrTvECcG8GSzsqoQlRCo
MB9st1KEi9wvgbAgJRYrh3nv+G/B11jocZ731CzHnMS9hbRC8xC4P+mUz1RJMqkv
djJe5HUM3sx49yOLmK+bC7mXm2f6kwIDAQABoC8wLQYJKoZIhvcNAQkOMSAwHjAc
BgNVHREEFTATggZzdy0xMjCCCXdlYnNlcnZlcjANBgkqhkiG9w0BAQUFAAOBgQC4
NnM6s5pUGXu9nRcbCFV/yiH+Es1hIqcDzyC44exBCXpSWkdfj0ezcujLI+/Poe3V
pY5+BoaUPeqIus9dYJhqu07ANU2B1mZDNys8koizRqWMpFH2Kz0XGrlNQIXWWoa2
TyTt+glQhcvzHGnrC5Xpe+3QktmRk7P2uGVi3Ir3bg==

—–END NEW CERTIFICATE REQUEST—–


>



ファイルに保存した後、上記画面の「閉じる」ボタンを押下します。ボタンを押下すると

下記の画面が表示されますので、「配備保留中」のリンクを押下して下さい。







「配備保留中」のリンクを押下すると下記の新規ウィンドウが表示されます。ここで、「配備 …」ボタンを押下

して下さい。







「配備 …」ボタンを押下すると下記の画面が表示されます。ここで「インスタンスを再起動」で「今すぐ」を

選択し、「了解 …」ボタンを押下して下さい。

以上で、Sun Java System Web Server 上に自動的に秘密鍵が生成され、「証明書署名要求(CSR)」までが

生成されました。







次に、上記で作成した証明書署名要求(CSR)を元に、認証局(CA)で実際に署名を行う方法を紹介します。

まず、既存のopenssl.confのコピーを生成し、サーバ証明書を作成する為に若干設定変更を行います。


> cp /etc/sfw/openssl/openssl.cnf /etc/sfw/openssl/openssl-server.cnf


> vi /etc/sfw/openssl/openssl-server.cnf

basicConstraints=CA:FALSE <—FALSEに変更

# This is OK for an SSL server.

nsCertType = server <———- ここをコメント会うと



さてそれでは実際に、認証局で署名を行いましょう。

-config には先ほど修正したファイルを指定します。

-in にはWebサーバで生成した証明書署名要求(CSR)を指定します。

-keyfile には認証局の秘密鍵を指定します。

-cert には認証局の証明書を指定します。

-out には署名済みのWebサーバの生成されたサーバ証明書を指定します。


> openssl ca -config /etc/sfw/openssl/openssl-server.cnf -in ./csr.pem -keyfile
/etc/sfw/openssl/private/cakey.pem -cert /etc/sfw/openssl/cacert.pem -out cert.pem



Using configuration from /etc/sfw/openssl/openssl-server.cnf
29833:error:0E06D06C:configuration file routines:NCONF_get_string:no value:
/on10/build-nd/F10U4B12b/usr/src/common/openssl/crypto/conf/conf_lib.c:329:
group=CA_default name=unique_subject
Enter pass phrase for /etc/sfw/openssl/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 1 (0x1)
Validity
Not Before: Mar 11 06:05:20 2008 GMT
Not After : Mar 11 06:05:20 2009 GMT
Subject:
countryName = JP
stateOrProvinceName = Tokyo
organizationName = Sun Microsystems K.K.
organizationalUnitName = Software Practice
commonName = sw-120.japan.sun.com
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Cert Type:
SSL Server
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
3C:08:1D:CA:8C:90:54:DB:F3:39:4F:E8:15:C3:90:4C:94:40:1C:D0
X509v3 Authority Key Identifier:
keyid:36:1F:D0:6B:95:99:BC:CB:FE:D9:C5:E6:F0:27:6B:36:96:89:E5:B0
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 11 06:05:20 2009 GMT (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated



ここで生成されたWeb サーバの証明書の中身を確認してみましょう。


> cat cert.pem


Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: md5WithRSAEncryption
Issuer: C=JP, ST=Tokyo, L=Setagaya, O=Sun Microsystems K.K., OU=Software
Practice, CN=Hanako Yamada/emailAddress=Hanako.Yamada@foo.bar.jp
Validity
Not Before: Mar 11 06:05:20 2008 GMT
Not After : Mar 11 06:05:20 2009 GMT
Subject: C=JP, ST=Tokyo, O=Sun Microsystems K.K., OU=Software Practice,
CN=sw-120.japan.sun.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:d3:02:08:d5:9a:0e:c7:ab:1a:77:d7:c6:e1:24:
fd:96:bc:31:97:bb:ad:8f:9b:b3:3e:8a:09:1b:40:
fc:f4:29:88:81:a5:2a:84:f6:ea:f8:37:92:7a:5a:
b4:ef:10:27:06:f0:64:b3:b2:aa:10:95:10:a8:30:
1f:6c:b7:52:84:8b:dc:2f:81:b0:20:25:16:2b:87:
79:ef:f8:6f:c1:d7:58:e8:71:9e:f7:d4:2c:c7:9c:
c4:bd:85:b4:42:f3:10:b8:3f:e9:94:cf:54:49:32:
a9:2f:76:32:5e:e4:75:0c:de:cc:78:f7:23:8b:98:
af:9b:0b:b9:97:9b:67:fa:93
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Cert Type:
SSL Server
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
3C:08:1D:CA:8C:90:54:DB:F3:39:4F:E8:15:C3:90:4C:94:40:1C:D0
X509v3 Authority Key Identifier:
keyid:36:1F:D0:6B:95:99:BC:CB:FE:D9:C5:E6:F0:27:6B:36:96:89:E5:B0
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
Signature Algorithm: md5WithRSAEncryption
89:19:7f:25:55:3b:00:23:33:42:95:67:be:13:22:16:ba:46:
c1:a4:d0:73:df:96:47:c8:2c:63:a9:50:7c:02:30:32:69:39:
1f:1f:c6:fc:5e:4d:e2:28:7b:a5:ba:ba:43:67:c0:72:6a:58:
f6:87:c4:02:5e:48:4d:a8:2b:79:1e:1a:14:03:aa:0e:62:7c:
9d:2e:d6:1f:15:d6:bd:75:59:d0:41:05:8d:a6:0c:24:11:b4:
c2:87:e0:87:ca:d8:ca:b4:5d:d5:87:b0:97:83:25:da:46:0c:
32:17:0d:30:9d:55:62:19:fe:9f:96:1f:d8:99:57:6d:4d:31:
55:05
—–BEGIN CERTIFICATE—–
MIID6jCCA1OgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBrTELMAkGA1UEBhMCSlAx
DjAMBgNVBAgTBVRva3lvMREwDwYDVQQHEwhTZXRhZ2F5YTEeMBwGA1UEChMVU3Vu
IE1pY3Jvc3lzdGVtcyBLLksuMRowGAYDVQQLExFTb2Z0d2FyZSBQcmFjdGljZTEW
MBQGA1UEAxMNSGFuYWtvIFlhbWFkYTEnMCUGCSqGSIb3DQEJARYYSGFuYWtvLllh
bWFkYUBmb28uYmFyLmpwMB4XDTA4MDMxMTA2MDUyMFoXDTA5MDMxMTA2MDUyMFow
eDELMAkGA1UEBhMCSlAxDjAMBgNVBAgTBVRva3lvMR4wHAYDVQQKExVTdW4gTWlj
cm9zeXN0ZW1zIEsuSy4xGjAYBgNVBAsTEVNvZnR3YXJlIFByYWN0aWNlMR0wGwYD
VQQDExRzdy0xMjAuamFwYW4uc3VuLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
gYkCgYEA0wII1ZoOx6sad9fG4ST9lrwxl7utj5uzPooJG0D89CmIgaUqhPbq+DeS
elq07xAnBvBks7KqEJUQqDAfbLdShIvcL4GwICUWK4d57/hvwddY6HGe99Qsx5zE
vYW0QvMQuD/plM9USTKpL3YyXuR1DN7MePcji5ivmwu5l5tn+pMCAwEAAaOCAUww
ggFIMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZAMCwGCWCGSAGG+EIBDQQf
Fh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUPAgdyoyQ
VNvzOU/oFcOQTJRAHNAwgdoGA1UdIwSB0jCBz4AUNh/Qa5WZvMv+2cXm8CdrNpaJ
5bChgbOkgbAwga0xCzAJBgNVBAYTAkpQMQ4wDAYDVQQIEwVUb2t5bzERMA8GA1UE
BxMIU2V0YWdheWExHjAcBgNVBAoTFVN1biBNaWNyb3N5c3RlbXMgSy5LLjEaMBgG
A1UECxMRU29mdHdhcmUgUHJhY3RpY2UxFjAUBgNVBAMTDUhhbmFrbyBZYW1hZGEx
JzAlBgkqhkiG9w0BCQEWGEhhbmFrby5ZYW1hZGFAZm9vLmJhci5qcIIBADANBgkq
hkiG9w0BAQQFAAOBgQCJGX8lVTsAIzNClWe+EyIWukbBpNBz35ZHyCxjqVB8AjAy
aTkfH8b8Xk3iKHulurpDZ8Byalj2h8QCXkhNqCt5HhoUA6oOYnydLtYfFda9dVnQ
QQWNpgwkEbTCh+CHytjKtF3Vh7CXgyXaRgwyFw0wnVViGf6flh/YmVdtTTFVBQ==
—–END CERTIFICATE—–

>



以上で、認証局(CA)による署名済みのサーバ証明書が生成されました。

署名済みのサーバ証明書が生成されましたので、ここで生成された証明書を

Web サーバにインストールしましょう。

Web サーバの管理画面より、「構成」→「対象の構成(sw-120)」を選択し、「証明書」タブを

選択後、「サーバ証明書」を選択して下さい。

「サーバ証明書」タブを選択すると「インストール …」ボタンが表示されますので、ボタンを

押下します。





「インストール …」ボタンを押下すると下記の画面が表示されます。ここでトークンを選択し、

「次へ」ボタンを押下して下さい。







「次へ」ボタンを押下すると下記の画面が表示されます。下記の画面では、署名済みの証明書から、

「BEGIN CERTIFICATE」から「END CERTIFICATE」までを画面内にコピー&ペーストして貼付けます。

コピー&ペーストした後「次へ」ボタンを押下して下さい。







「次へ」ボタンを押下すると下記の画面が表示されます。ここでは、Web サーバに保存する証明書の

ニックネームを入力します。

分かり易いニックネームを入力して、「次へ」ボタンを押下して下さい。







「次へ」ボタンを押下すると下記の画面を表示されます。ここではインストールする証明書の内容を

確認する画面になります。

問題がない場合は、「完了」ボタンを押下してください。







「完了」ボタンを押下すると下記の画面が表示されます。「Installation of Certificate successful」が

表示されれば、正常に認証局(CA)で署名されたサーバ証明書がインストールされています。









「完了」ボタンを押下すると、下記の画面が表示されます。ここで、「配備保留中」のリンクを押下して下さい。







「配備保留中」のリンクを押下すると下記の新規ウィンドウが表示されます。ここで、「配備」ボタンを

押下して下さい。







「配備」ボタンを押下した後、下記の画面が表示されますので、「了解」ボタンを押下し、

インスタンスを再起動して下さい。





「了解」ボタンを押下して下さい。ボタンを押下すると下記の画面が表示されます。







「閉じる」ボタンを押下すると、画面に下記のように表示されます。サーバ証明書が正常にインストール

されているか画面より確認して下さい。





上記までで、Web サーバのサーバ証明書のインストールが完了しました。しかしこの状態ではまだ、HTTPSの

通信ができません。そこで、HTTPSの通信ができるようにHTTPリスナーの設定を変更してみましょう。

「構成」→「対象の構成(sw-120)」を選択した後、「HTTPリスナー」タブを選択して下さい。

インスタンス中に存在する、HTTPのリスナー(http-listener-1)を選択して下さい。







HTTP リスナーを選択すると下記の画面が表示されます。ここで、「SSL」のタブを選択して下さい。



補足:

サーバ証明書の署名要求で設定した「サーバ名(cn)」と同一のサーバ名が下記で設定されていることを

確認して下さい。仮に署名要求で設定したサーバ名と、HTTPリスナー内のサーバ名が異なる場合は、

正常なサーバと認識されない為、サーバ名には御注意ください。

また、HTTPSのデフォルトのポート番号は443になります。443以外のポート番号が指定されている場合、

(デフォルトでは80等)はHTTPSの通信ができるように443に変更して「適用」ボタンを押下して先の手順に

進んでください。







「SSL」のタブを押下すると下記の画面に切り替わります。ここで、「SSL」のチェックボックスにチェックを付け

「適用」ボタンを押下して下さい。







「適用」ボタンを押下すると下記の画面が表示されます。「配備保留中」のリンクを押下して下さい。







「配備保留中」リンクを押下すると、下記の新規ウィンドウが表示されます。ここで、「配備」ボタンを

押下して下さい。







「配備」ボタンを押下すると下記の画面が表示されます。「インスタンスを再起動 今すぐ」にチェックを付け

「了解」ボタンを押下して下さい。







「了解」ボタンを押下した後、下記の画面が表示されます。「閉じる」ボタンを押下し、

完了して下さい。







次に、認証局(CA)の証明書をWeb サーバにインストールします。管理画面から「構成」→

「対象の構成(sw-120)」→「証明書」タブより「認証局」タブを押下して下さい。

すると下記の画面が表示されます。ここで「インストールボタン」を押下し認証局(CA)の証明書を

インストールする事ができます。



Pasted Graphic.tiff



「インストール」ボタンを押下すると下記の画面が表示されます。トークンを選択し、「次へ」ボタンを

押下して下さい。







「次へ」ボタンを押下すると下記の画面が表示されます。この画面で認証局(CA)の証明書を貼付けます。

証明書を貼付けた後「次へ」ボタンを押下してください。







認証局(CA)の証明書の入手先ですが、OpenSSLのディレクトリ配下にcacert.pemというファイルがありますので、

こちらの「BEGIN CERTIFICATE」から「END CERTIFICATE」までをコピー&ペースとしてご利用ください。


> less /etc/sfw/openssl/cacert.pem <–このファイルの内容を表示


—–BEGIN CERTIFICATE—–
MIID4jCCA0ugAwIBAgIBADANBgkqhkiG9w0BAQQFADCBrTELMAkGA1UEBhMCSlAx
DjAMBgNVBAgTBVRva3lvMREwDwYDVQQHEwhTZXRhZ2F5YTEeMBwGA1UEChMVU3Vu
IE1pY3Jvc3lzdGVtcyBLLksuMRowGAYDVQQLExFTb2Z0d2FyZSBQcmFjdGljZTEW
MBQGA1UEAxMNSGFuYWtvIFlhbWFkYTEnMCUGCSqGSIb3DQEJARYYSGFuYWtvLllh
bWFkYUBmb28uYmFyLmpwMB4XDTA4MDMxMTA1MzgxM1oXDTA5MDMxMTA1MzgxM1ow
ga0xCzAJBgNVBAYTAkpQMQ4wDAYDVQQIEwVUb2t5bzERMA8GA1UEBxMIU2V0YWdh
eWExHjAcBgNVBAoTFVN1biBNaWNyb3N5c3RlbXMgSy5LLjEaMBgGA1UECxMRU29m
dHdhcmUgUHJhY3RpY2UxFjAUBgNVBAMTDUhhbmFrbyBZYW1hZGExJzAlBgkqhkiG
9w0BCQEWGEhhbmFrby5ZYW1hZGFAZm9vLmJhci5qcDCBnzANBgkqhkiG9w0BAQEF
AAOBjQAwgYkCgYEAwrSQg6m9CizA7xXjS3yVAgUNklxKuM9uKT8foOby72RmTfvR
Uoi3dwUI00JxQDvBvmZPElOcL1qk6H7HEMCAffAJkPvvyBCTFNKH0GgIvCaSyQX1
tmx7IVpeae+jwKVRhwUwsz8X+njXdF9rhtwIPTq8QRj+G4BOtWVKPLet/PUCAwEA
AaOCAQ4wggEKMB0GA1UdDgQWBBQ2H9BrlZm8y/7ZxebwJ2s2lonlsDCB2gYDVR0j
BIHSMIHPgBQ2H9BrlZm8y/7ZxebwJ2s2lonlsKGBs6SBsDCBrTELMAkGA1UEBhMC
SlAxDjAMBgNVBAgTBVRva3lvMREwDwYDVQQHEwhTZXRhZ2F5YTEeMBwGA1UEChMV
U3VuIE1pY3Jvc3lzdGVtcyBLLksuMRowGAYDVQQLExFTb2Z0d2FyZSBQcmFjdGlj
ZTEWMBQGA1UEAxMNSGFuYWtvIFlhbWFkYTEnMCUGCSqGSIb3DQEJARYYSGFuYWtv
LllhbWFkYUBmb28uYmFyLmpwggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEE
BQADgYEAjo9baqRceGPaZkKWm8eFSooa/b5cinz3v7qKxZKmKhsjZhyFne7BXCqY
umtzgycAgXkKzLyeyL/RulXtde1oubCIfAlzEhD3hp1MBbJ4/Pw7I6ixyf1kkrf7
+aJ3/KQBZrclXK1aGyjnQKOQE2XHGewUf+Ouk6v7B+TrERivZF0=
—–END CERTIFICATE—–



「次へ」ボタンを押下すると下記の画面が表示されます。ここでは認証局(CA)の証明書をインストールしていますので、

「CA 証明書」のラジオボタンにチェックを付け「次へ」ボタンを押下します。







「次へ」ボタンを押下すると下記の画面が表示されます。ここではインストールする認証局(CA)の証明書の確認を

行います。サブジェクトや発行者に記載されている内容を確認し「完了」ボタンを押下して下さい。







「完了」ボタンを押下すると下記の画面が表示されます。「閉じる」ボタンを押下しインストールウィザードを終了して下さい。







下記の画面では認証局(CA)の証明書が正しくインストールされているかを確認しています。インストールした認証局(CA)の

証明書は一覧の最後のエントリに記載されてますので、確認を行う際にはページを移動して確認を行ってください。







確認が終わった後、「配備保留中」のリンクを押下して下さい。







「配備」を行った後、インスタンスを再起動する必要がありますので、画面の内容に従い

インスタンスを再起動して下さい。









以上で、Web サーバに対するサーバ証明書のインストール作業は全て完了です。

この状態で、信頼されたHTTPS通信が可能なWeb サーバの構築が完了です。





次は、クライアントのブラウザからHTTPSの通信ができるかを確認してみましょう。

実際にクライアントのブラウザからアクセスする前に、ブラウザで1点だけ準備する事があります。

それは、認証局(CA)の証明書をブラウザにインストールしなければならない点です。


現在、Web サーバは自前のOpenSSLで構築した認証局(CA)で署名されたサーバ証明書を利用してHTTPSの
通信ができるように設定が完了していますが、クライアントのブラウザは自前で構築したOpenSSLの認証局(CA)
を信頼する設定にはなっておりません。そこで、OpenSSLの認証局(CA)で署名された全ての証明書を信頼する為に
クライアントのブラウザに対しても認証局(CA)の証明書をインストールする必要があります。
以下に、ブラウザに認証局(CA)の証明書のインストール手順を記載します。
ちなみに、下記はFirefoxを例にして記述しています。
Firefoxのメニューより、「環境設定」を選択して下さい。すると下記のような新規ウィンドウが表示されます。
この中で、「詳細」→「暗号化」タブを選択し、「証明書を表示」ボタンを押下して下さい。







「証明書を表示」ボタンを押下すると下記のような画面が表示されます。この中で「認証局証明書」タブを

選択し「インポート」ボタンを押下して下さい。







「インポート」ボタンを押下するとファイルダイアログが表示されますので、事前に認証局(CA)より

FTP等で入手しておいたcacert.pemを指定して「開く」ボタンを押下します。







ボタンを押下すると下記の画面が表示されますので、全てのチェックボックスにチェックを付け

「OK」ボタンを押下して認証局(CA)のインストールを完了します。







認証局(CA)の証明書が正しくインストールされているかを確認してみましょう。

下記のように、証明書名と発行者名中に独自で作成した証明書が表示されていれば問題ありません。

念のため、証明書を確認してみましょう。対象の署名書を選択し「表示」ボタンを押下してください。







「表示」ボタンを押下すると下記の画面が表示されます。この認証局(CA)の証明書では、

認証局で署名された、クライアント証明書やサーバ証明書、メール署名者の証明書、メール受信者の

証明書等を信頼できるようになっています。







以上で、クライアントであるブラウザ側の準備も完了しました。

それでは、実際にブラウザからWebサーバにHTTPSで通信を行ってみましょう。

警告画面等が表示されずに正常にHTTPSの通信ができたでしょうか?

ブラウザの鍵の絵の部分をダブルクリックすると「ページ情報」を表示する画面が表示されます。

内容を確認すると、このサイトへの接続は検証されており、信頼していますというメッセージが

表示されているかと思います。









以上で、OpenSSLを使用したセキュアなWebサーバの構築が完了です。

次回は、いよいよクライアント認証の設定方法について紹介します。





すいません、体裁が悪くて、これから外出で直前でアップしましたので、

体裁は後で綺麗にしなおします。


2008年3月13日 at 10:10 PM

Web Server 7.0 から Web Server 7.0 Update1へのアップデート方法

今日は、SJS Web Server 7.0からSJS Web Server 7.0 Update 1へのアップデート方法
について説明します。
SJS Web Server 7.0から7.0 Update 1へのアップデート方法は非常に簡単です。

7.0 Update 1を御入手いただいた後、Update 1のsetupを実行してください。
そしてインストール先として既存のWeb Server 7.0のディレクトリを指定してください。
ディレクトリを指定後、「次へ」ボタンを押下すると、下記のような画面が表示されます。

ここでは、インストーラが自動的に既存の情報を入手し必要なライブラリのみ
アップデートインストールしてくれます。
実際にこの手法でアップデートした後、アップデートされたファイルを確認してみました。
Web Server 7.0 Upadte 1をアップデートした日付を6月27日とします。
そして、ファイルの更新日付が6月27日の内容だけを確認してみます。

その結果、管理サーバを初めとし既存のインスタンスの内容には一切変更は施されていない事がわかります。つまり、アップデートする為に再度Web Serverのインスタンスを設定をしなおさなくてもそのまま設定が反影される事がわかります。既存の設定が壊れる事はありませんので容易にアップデートが可能です。

※ ただし、アップデートの際は管理サーバやインスタンスは停止してアップデートしてください。

#  ls -lt 
合計 28
drwx------   2 root     root         512  6月 27日  20:29 setup
drwxr-xr-x   3 root     root         512  6月 27日  20:28 bin
drwxr-xr-x  13 root     root        3072  6月 27日  20:28 lib
-rw-r--r--   1 root     root         726  6月 27日  20:27 README.txt
drwxr-xr-x   2 root     root         512  6月 27日  20:27 Legal
drwxr-xr-x   8 root     root         512  6月 27日  20:27 include
drwxr-xr-x  11 root     root         512  6月 13日  23:10 https-test.Japan.Sun.COM
drwxr-xr-x   9 root     other        512  6月 13日  18:57 jdk
drwxr-xr-x   2 root     root         512  5月 31日  22:10 etc
drwxr-xr-x   9 root     root         512  5月 28日  21:12 admin-server
drwxr-xr-x   6 root     root         512  5月 28日  10:34 plugins
drwxr-xr-x   7 root     root         512  5月 28日  10:34 samples
#  pwd
/sun/webserver7/bin
# ls -lt
合計 252
-rwxr-xr-x   1 root     root       29332  6月 27日  20:28 uninstall
-rwxr-xr-x   1 root     root       66184  6月 27日  20:27 flexanlg
-rwxr-xr-x   1 root     root       17068  6月 27日  20:27 htpasswd
lrwxrwxrwx   1 root     root           7  5月 28日  10:35 64 -> sparcv9
-rwxr-xr-x   1 root     root        1062  5月 28日  10:35 schemagen
-rwxr-xr-x   1 root     root        1015  5月 28日  10:35 xjc
-rwxr-xr-x   1 root     root         426  5月 28日  10:35 wsimport
-rwxr-xr-x   1 root     root         421  5月 28日  10:35 wsgen
drwxr-xr-x   2 root     root         512  5月 28日  10:35 sparcv9
-rwxr-xr-x   1 root     root         540  5月 28日  10:35 jspc
-rwxr-xr-x   1 root     root         941  5月 28日  10:35 modutil
-rwxr-xr-x   1 root     root         942  5月 28日  10:35 certutil
-rwxr-xr-x   1 root     root         942  5月 28日  10:35 pk12util
-rwxr-xr-x   1 root     root        1308  5月 28日  10:35 wdeploy
-rwxr-xr-x   1 root     root        1439  5月 28日  10:35 wadm
#
#  pwd 
/sun/webserver7/lib
# ls -lt
合計 114546
-rw-r--r--   1 root     root     7747324  6月 27日  20:28 webserv-jwsdp.jar
-rw-r--r--   1 root     root       44623  6月 27日  20:28 activation.jar
-rw-r--r--   1 root     root      270394  6月 27日  20:28 mail.jar
-rw-r--r--   1 root     root      698579  6月 27日  20:28 jss4.jar
-rw-r--r--   1 root     root      263556  6月 27日  20:28 ldapjdk.jar
-rw-r--r--   1 root     root      497796  6月 27日  20:28 ktsearch.jar
-rw-r--r--   1 root     root     1034049  6月 27日  20:28 ant.jar
-rw-r--r--   1 root     root         476  6月 27日  20:28 libfreebl_32int64_3.chk
-rw-r--r--   1 root     root         476  6月 27日  20:28 libfreebl_32int_3.chk
-rw-r--r--   1 root     root         476  6月 27日  20:28 libfreebl_32fpu_3.chk
-rw-r--r--   1 root     root         476  6月 27日  20:28 libsoftokn3.chk
-rw-r--r--   1 root     root     9902188  6月 27日  20:28 libicudata.so.3
-rw-r--r--   1 root     root     1170776  6月 27日  20:28 libicuuc.so.3
-rw-r--r--   1 root     root     1437600  6月 27日  20:28 libicui18n.so.3
-rwxr-xr-x   1 root     root       66452  6月 27日  20:28 libz.so
-rwxr-xr-x   1 root     root      482360  6月 27日  20:28 libfreebl_32int64_3.so
-rwxr-xr-x   1 root     root      430888  6月 27日  20:28 libfreebl_32int_3.so
-rwxr-xr-x   1 root     root      599128  6月 27日  20:28 libfreebl_32fpu_3.so
-rwxr-xr-x   1 root     root      588448  6月 27日  20:28 libsoftokn3.so
-rwxr-xr-x   1 root     root      304172  6月 27日  20:28 libjss4.so
-rwxr-xr-x   1 root     root      414472  6月 27日  20:28 libnssckbi.so
-rwxr-xr-x   1 root     root      162780  6月 27日  20:28 libsasl.so
-rwxr-xr-x   1 root     root       51488  6月 27日  20:28 libssldap60.so
-rwxr-xr-x   1 root     root       34344  6月 27日  20:28 libprldap60.so
-rwxr-xr-x   1 root     root      422884  6月 27日  20:28 libldap60.so
-rwxr-xr-x   1 root     root      434288  6月 27日  20:28 libnspr4.so
-rwxr-xr-x   1 root     root       17228  6月 27日  20:28 libplds4.so
-rwxr-xr-x   1 root     root       43780  6月 27日  20:28 libplc4.so
-rwxr-xr-x   1 root     root      885804  6月 27日  20:28 libnss3.so
-rwxr-xr-x   1 root     root      284568  6月 27日  20:28 libsmime3.so
-rwxr-xr-x   1 root     root      283620  6月 27日  20:28 libssl3.so
-rwxr-xr-x   1 root     root      137100  6月 27日  20:28 pk12util
-rwxr-xr-x   1 root     root      309728  6月 27日  20:28 modutil
-rwxr-xr-x   1 root     root      203376  6月 27日  20:28 certutil
drwxr-xr-x   2 root     root        4608  6月 27日  20:28 htmlconvert
drwxr-xr-x   4 root     root         512  6月 27日  20:28 snmp
drwxr-xr-x   2 root     root         512  6月 27日  20:28 tlds
-rwxr-xr-x   1 root     root       23871  6月 27日  20:28 migrateServer.pl
drwxr-xr-x   2 root     root        1536  6月 27日  20:28 messages
drwxr-xr-x   3 root     root        1024  6月 27日  20:28 perl
drwxr-xr-x   3 root     root         512  6月 27日  20:28 install
drwxr-xr-x   2 root     root         512  6月 27日  20:28 icons
drwxr-xr-x   2 root     root         512  6月 27日  20:28 dtds
-rw-r--r--   1 root     root       55028  6月 27日  20:28 s1as-jsr160-server.jar
-rw-r--r--   1 root     root       36050  6月 27日  20:28 container-auth.jar
-rw-r--r--   1 root     root       22342  6月 27日  20:28 deployment-api.jar
-rw-r--r--   1 root     root       36600  6月 27日  20:28 sun-ws-jsr88-dm.jar
-rw-r--r--   1 root     root     1965940  6月 27日  20:28 webserv-rt.jar
-rw-r--r--   1 root     root      383236  6月 27日  20:28 webserv-jstl.jar
-rw-r--r--   1 root     root      531457  6月 27日  20:28 webserv-admin.jar
-rw-r--r--   1 root     root     2786266  6月 27日  20:28 pwc.jar
-rw-r--r--   1 root     root      323012  6月 27日  20:28 jsf-api.jar
-rw-r--r--   1 root     root     1210046  6月 27日  20:28 jsf-impl.jar
-rwxr-xr-x   1 root     root       17744  6月 27日  20:28 libadminsecurity.so
-rwxr-xr-x   1 root     root      136004  6月 27日  20:28 libwssecurity.so
-rwxr-xr-x   1 root     root       37132  6月 27日  20:28 libwsserverctrl.so
-rwxr-xr-x   1 root     root       15904  6月 27日  20:28 libwslifecycle.so
-rwxr-xr-x   1 root     root       18840  6月 27日  20:28 libwsconfigurator.so
-rwxr-xr-x   1 root     root      145176  6月 27日  20:28 libwsconfig.so
-rwxr-xr-x   1 root     root       72304  6月 27日  20:28 libmonitorjni.so
-rwxr-xr-x   1 root     root       28836  6月 27日  20:28 libadminjni.so
-rwxr-xr-x   1 root     root       15184  6月 27日  20:28 libadminutil.so
-rwxr-xr-x   1 root     root     5113892  6月 27日  20:28 libxerces-c.so.26
-rwxr-xr-x   1 root     root       36960  6月 27日  20:28 libxalanMsg.so.19
-rwxr-xr-x   1 root     root     6241880  6月 27日  20:28 libxalan-c.so.19
-rwxr-xr-x   1 root     root       67472  6月 27日  20:28 libpcre.so.0
-rwxr-xr-x   1 root     root       52240  6月 27日  20:28 libxsd2cpp.so
-rwxr-xr-x   1 root     root      188128  6月 27日  20:28 libwebdav.so
-rwxr-xr-x   1 root     root       93184  6月 27日  20:28 libsupport.so
-rwxr-xr-x   1 root     root       13132  6月 27日  20:28 libCld.so
-rwxr-xr-x   1 root     root        7524  6月 27日  20:28 libShtml.so
-rwxr-xr-x   1 root     root       13208  6月 27日  20:28 libnstp.so
-rwxr-xr-x   1 root     root       25224  6月 27日  20:28 libnstime.so
-rwxr-xr-x   1 root     root       73288  6月 27日  20:28 libnsprwrap.so
-rwxr-xr-x   1 root     root       50136  6月 27日  20:28 libnsfc.so
-rwxr-xr-x   1 root     root     4193796  6月 27日  20:28 libns-httpd40.so
-rwxr-xr-x   1 root     root      203088  6月 27日  20:27 liblibsi18n.so
-rwxr-xr-x   1 root     root       69420  6月 27日  20:27 liblibdbm.so
-rwxr-xr-x   1 root     root      260184  6月 27日  20:27 libj2eeplugin.so
-rwxr-xr-x   1 root     root        7584  6月 27日  20:27 libgetprop.so
-rwxr-xr-x   1 root     root      294244  6月 27日  20:27 libdavplugin.so
-rwxr-xr-x   1 root     root       31936  6月 27日  20:27 libares3.so
-rwxr-xr-x   1 root     root       11976  6月 27日  20:27 runmagt
-rwxr-xr-x   1 root     root      336484  6月 27日  20:27 httpagt
-rwxr-xr-x   1 root     root       74344  6月 27日  20:27 CertificateMgrUtil
-rwxr-xr-x   1 root     root       12068  6月 27日  20:27 svrctl
-rwxr-xr-x   1 root     root       18156  6月 27日  20:27 parsexml
-rwxr-xr-x   1 root     root       65904  6月 27日  20:27 dpstats
-rwxr-xr-x   1 root     root       38696  6月 27日  20:27 dblink
-rwxr-xr-x   1 root     root       32272  6月 27日  20:27 Cgistub
-rwxr-xr-x   1 root     root       11128  6月 27日  20:27 webservd
-rwxr-xr-x   1 root     root       72168  6月 27日  20:27 webservd-wdog
-rw-r--r--   1 root     root      206352  6月 27日  20:27 jmxremote_optional.jar
-rw-r--r--   1 root     root      168112  6月 27日  20:27 libcliutil.so
-rw-r--r--   1 root     root      130194  6月 27日  20:27 webserv-admin-shared.jar
-rw-r--r--   1 root     root     1319503  6月 27日  20:27 wadmcli.jar
-rw-r--r--   1 root     root      220775  6月 27日  20:27 tcljava.jar
-rw-r--r--   1 root     root       62270  6月 27日  20:27 s1as-jsr160-client.jar
-rw-r--r--   1 root     root       56936  6月 27日  20:27 jline.jar
-rw-r--r--   1 root     root      719297  6月 27日  20:27 jacl.jar
-rw-r--r--   1 root     root       81895  6月 27日  20:27 cli-framework.jar
-rw-r--r--   1 root     root       20988  6月 27日  20:27 webserv-rt-l10n.jar
-rw-r--r--   1 root     root      220685  6月 27日  20:27 webserv-admin-shared-l10n.jar
-rw-r--r--   1 root     root       38924  6月 27日  20:27 wadmcli-l10n.jar
-rw-r--r--   1 root     root        2576  6月 27日  20:27 cli-framework_zh_TW.jar
-rw-r--r--   1 root     root        2572  6月 27日  20:27 cli-framework_zh_CN.jar
-rw-r--r--   1 root     root        2695  6月 27日  20:27 cli-framework_ko.jar
-rw-r--r--   1 root     root        2723  6月 27日  20:27 cli-framework_ja.jar
-rw-r--r--   1 root     root        2505  6月 27日  20:27 cli-framework_fr.jar
-rw-r--r--   1 root     root        2493  6月 27日  20:27 cli-framework_es.jar
-rw-r--r--   1 root     root        2511  6月 27日  20:27 cli-framework_de.jar
drwxr-xr-x   2 root     root        1536  6月 27日  20:27 sparcv9
lrwxrwxrwx   1 root     root           7  5月 28日  10:35 64 -> sparcv9
-rwxr-xr-x   1 root     root        1348  5月 28日  10:35 searchadmin
-rwxr-xr-x   1 root     root         371  5月 28日  10:35 migrateServer
-rwxr-xr-x   1 root     root         317  5月 28日  10:35 wsenv
drwxr-xr-x   3 root     root         512  5月 28日  10:35 cpu
drwxr-xr-x   6 root     root         512  5月 28日  10:35 webapps
# pwd
/sun/webserver7/include
# ls -lt
合計 292
drwxr-xr-x   2 root     root         512  6月 27日  20:28 ldapsdk50
drwxr-xr-x   4 root     root        3072  6月 27日  20:28 nspr
drwxr-xr-x   2 root     root         512  6月 27日  20:27 shtml
-rw-r--r--   1 root     root      121806  6月 27日  20:27 nsapi.h
drwxr-xr-x   2 root     root         512  6月 27日  20:27 nsacl
-rw-r--r--   1 root     root         350  6月 27日  20:27 netsite.h
drwxr-xr-x   2 root     root         512  6月 27日  20:27 frame
-rw-r--r--   1 root     root        9001  6月 27日  20:27 drnsapi.h
drwxr-xr-x   2 root     root         512  6月 27日  20:27 base
#

※ nspr , shtml , nsacl , frame , baseディレクトリの中身は全て
アップデートされていました。

2007年6月27日 at 5:28 AM

高パフォーマンスで信頼できるWeb Proxyソリューション





弊社のSun Fire T1000, T2000等は非常に優れたパフォーマンスを

発揮するサーバ製品として良く知られています。特にWeb Serverや

Application Server等に対する用途として非常にマッチする事も

知られています。



今回、Web ServerやApplication Server以外にProxy Server

(実はHTTPのハンドリング等の部分はWeb Serverのコードを使用)

でも非常に優れたパフォーマンスを発揮する点をレポートに

まとめた資料がリリースされましたので報告します。



この資料の中には、Proxy Serverのベンチマークテストで良く使用されている、

Web Polygraphでの結果も記載されていますので、参考になるかと思います。



是非、一度御確認いただければと思います。




Sun’s High-Performance and Reliable Web Proxy Solution






上記資料によると、PolygraphというProxy Serverのベンチマークツールを

使用し、Sun Fire T2000でProxy 1インスタンスあたり、8000 req/secまで

スケールしています。(その際のコンテンツサイズは13Kbです。)



ただし、Sun Fire T2000で8000 req/secが最大なのかというとそうではありません。

その際のCPU使用率は20〜30%しか使用しておらず、

Proxy Serverに対する要求を8000 req/secまでいくとNIC(1GB)の限界に達し

(Network Utilizationが100%)、それ以上を処理できないというのが本当の所です。



Sun Fire T2000にはデフォルトでGigabit Ethernetのポートが4つ付いていますので、

T2000を効率的に使用する為には、Solaris 10の仮想化技術(zone)を使用し

zone毎にProxyをインストールする事でSun Fire T2000上では8000req/sec以上の

処理ができるという事が言えます。





Polygraphによるベンチマーク結果







2007年6月25日 at 10:03 PM

ドキュメントの日本語化




Sun Java System Web Server 7.0のドキュメントが一部

日本語化されました。

今回は要望が一部とおりパフォーマンスチューニングガイドも

翻訳されました。その中には、Sun Fire T2000上でのチューニングパラメータの設定例

等も記載されておりますので、是非一度御確認いただければと思います。



Sun Java System Web Server 7.0 – Japanese



Sun Java System Web Server 7.0 管理ガイド

Sun Java System Web Server 7.0 パフォーマンスのチューニング、サイジング、およびスケーリング

Sun Java System Web Server 7.0 リリースノート (UNIX 版)

Sun Java System Web Server 7.0 リリースノート (Windows 版)



※ リンク先に一部誤りがありました。(2006/06/26リンク先を修正しました。)




2007年6月24日 at 10:26 PM

SJS Web Server 7.0 Update 1のリリース



SJS Web Server 7.0のUpdate 1が正式リリースされました。



Web Server 7.0の
入手先






以前も、説明しましたが今回のリリースよりServlet 2.5, JSP 2.1, JSF1.2への

対応になります。



是非、上記より入手して御試しください。



ちなみに、7.0 → 7.0 u1において下記がサポートされております。

Sun Java System Web Server 7.0 Update 1 Release Note



● Java Servlet 2.5 and JavaServer Pages (JSP) 2.1 Support

● JavaServer Pages Standard Tag Library and JavaServer Faces 1.2 Support

● Java SE 5.0 and 6 Support

● Accelerator Cache Technology

● Administration Support for Configuring FastCGI

● NetBeans Support

● Admin Console Support for Configuring Regular Expressions

● GUI and CLI Support for Pattern Matching



この他、検索コレクションを作成した後、コレクションのアップデートを

スケジューリングできるようになっています。(下記御参照)





2007年6月21日 at 12:38 AM

Sun Alert:102822



下記のバージョンを御使用中のWeb Server管理者の方へ、下記のSun Alertが

報告されました。



Sun Alert:102822 Sun Java System Web Server May Allow A User with Revoked Client Certificate to Access Server





【対応策】

 Sun Java System Web Server 6.1 Service Pack 7もしくは

 各プロダクト用のパッチが用意されておりますので、

 是非早急なアップデートを御検討ください。



 Product Downloads
Sun Java System Web Server 6.1 Service Pack 7




【問題】

 ある条件下で、取り消し(revoke)されたクライアント証明書を持つユーザが

 有効なCRLを含むWeb Serverのインスタンスに対してアクセスされる。



【影響のあるバージョン】



 SPARC Platform

  * Sun Java System Web Server 6.1 without Service Pack 7

  * Sun Java System Web Server 6.1 without patch 116648-19



 x86 Platform

  * Sun Java System Web Server 6.1 without Service Pack 7

  * Sun Java System Web Server 6.1 without patch 116649-19



 Linux Platform

  * Sun Java System Web Server 6.1 without Service Pack 7

  * Sun Java System Web Server 6.1 without patch 118202-11

 AIX Platform

  * Sun Java System Web Server 6.1 without Service Pack 7

 HP-UX Platform

  * Sun Java System Web Server 6.1 without Service Pack 7



【影響の無いバージョン】

  * Sun Java System Web Server 6.0

  * Sun Java System Web Server 6.1 for Windows

  * Sun Java System Web Server 7.0





PS.

先ほどWeb Serverのパフォーマンスに関する良い記事を書いたばかりなので、

タイミングが少し悪かったですね。

しかし管理者の皆様へ今後も安心して御使用いただくためにも、

このような情報も可能な限り本ブログで公開して行きたいと思います。




最近発効されたSun Alert一覧





2007年4月24日 at 3:05 AM

SJS Web Server 7.0はApache2.2.4の2倍速い!!



今日、同僚の岡崎さんに教えていただいたのですが、

海外でApacheとSJS Web Serverのベンチマークテストを行ったようです。



Sun Java Web Server Delivers a Jolt(英語記事)



これによると、Apache 2.2.4とSun Java System Web Server 7.0を

それぞれ、Sun Netra X1 400MHz server(若干古いH/W)上にインストールし

デフォルトの設定の状態でApache Benchでベンチマークを取ったようです。

その結果、Apache Web Serverの2倍以上高速の結果が得られたそうです。




Apache + Tomcat + OpenSSLをまだ使用してますか?


でも書きましたが、Apacheを使わなければならない理由は少なくなってきています。

ApacheでWeb Serverを管理されている管理者の皆様、嘘か本当かは御自身で

簡単に確認ができます。

Products Download Sun Java System Web Server 7.0(ノンサポートの場合無料)


まずは、是非一度、嘘か本当かを御試しください。

2007年4月24日 at 2:36 AM

過去の投稿 新しい投稿


Java Champion & Evangelist

ご注意

このエントリは個人の見解であり、所属する会社の公式見解ではありません

カレンダー

2017年8月
« 7月    
 123456
78910111213
14151617181920
21222324252627
28293031  

カテゴリー

Twitter

clustermap

ブログ統計情報

  • 987,455 hits

Feeds