1. OpenSSLでクライアント認証「認証局(CA)構築編」
2008年3月12日 at 11:35 午前
Translate to English by Google
さて今日から数回の連載で、Sun Java System Web Server 7.0の
リバースプロキシの機能、もしくはSun Java System
Application Server 9.1 with HADBに付属するロードバランサプラグイン
をSun Java System Web Server 7.0にインストールして、
前段(DMZ)にWeb Serverを置いて、Web Serverでクライアント認証を
行わさせた後に、後段のApplication Serverの提供するサービスを
利用できるようにする方法について紹介していきたいと思います。
今回、構成するネットワーク構成としては下記のイメージになります。

まず、はじめにクライアント認証を行うために、証明書を認証局(CA)で署名しますが、
今回は、Solaris 10に付属するOpenSSLを使用して、自前で認証局を構築し、
その後で、Web Serverのサーバ証明書やクライアント証明書を作成
していく方法を紹介していきます。
まず、はじめに、Solaris 10に付属するOpenSSLを使用して、
認証局を構築する方法から紹介して行きたいと思います。
Solaris 10には既にOpenSSLのコマンドやライブラリがインストール
されています。(/usr/sfw/bin/openssl)
また、各種設定ファイルは/etc/sfw/openssl配下に存在しています。
まずは、認証局(CA)を構築する為に下記のファイルを修正して下さい。
OpenSSLの設定ファイルの編集
> vi /etc/sfw/openssl/openssl.cnf
basicConstraints=CA:TRUE <—FALSEから変更
|
次に、実際に認証局を構築します。
OpenSSLで認証局(CA)の構築
> /usr/sfw/bin/CA.pl -newca
CA certificate filename (or enter to create)
Making CA certificate …
Generating a 1024 bit RSA private key
…………++++++
………….++++++
writing new private key to ‘./demoCA/private/cakey.pem’
Enter PEM pass phrase: [********]
Verifying – Enter PEM pass phrase:[********]
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [US]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Setagaya
Organization Name (eg, company) [Unconfigured OpenSSL Installation]:Sun Microsystems K.K.
Organizational Unit Name (eg, section) []:Software Practice
Common Name (eg, YOUR name) []:Hanako Yamada
Email Address []:Hanako.Yamada@foo.bar.jp
|
コマンドを実行するとコマンドを実行したカレントディレクトリに「demoCA」と
呼ばれるディレクトリが生成されます。
> ls
demoCA
> cd demoCA/
> ls
cacert.pem certs crl index.txt newcerts private serial
> cp -R * /etc/sfw/openssl/
|
ここで、認証局を構築した際に、自動的に生成される認証局の証明書の中身を
確認してみましょう。
また、上記のように生成されたファイルは全て「/etc/sfw/openssl」ディレクトリ配下に
コピーしておいてください。
認証局(CA)の証明書の内容の確認
> openssl x509 -in /etc/sfw/openssl/cacert.pem -text
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 0 (0x0)
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 05:38:13 2008 GMT
Not After : Mar 11 05:38:13 2009 GMT
Subject: C=JP, ST=Tokyo, L=Setagaya, O=Sun Microsystems K.K., OU
=Software Practice, CN=Hanako Yamada/emailAddress=Hanako.Yamada@
foo.bar.jp
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:c2:b4:90:83:a9:bd:0a:2c:c0:ef:15:e3:4b:7c:
95:02:05:0d:92:5c:4a:b8:cf:6e:29:3f:1f:a0:e6:
f2:ef:64:66:4d:fb:d1:52:88:b7:77:05:08:d3:42:
71:40:3b:c1:be:66:4f:12:53:9c:2f:5a:a4:e8:7e:
c7:10:c0:80:7d:f0:09:90:fb:ef:c8:10:93:14:d2:
87:d0:68:08:bc:26:92:c9:05:f5:b6:6c:7b:21:5a:
5e:69:ef:a3:c0:a5:51:87:05:30:b3:3f:17:fa:78:
d7:74:5f:6b:86:dc:08:3d:3a:bc:41:18:fe:1b:80:
4e:b5:65:4a:3c:b7:ad:fc:f5
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
36:1F:D0:6B:95:99:BC:CB:FE:D9:C5:E6:F0:27:6B:36:96:89:E5:B0
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
X509v3 Basic Constraints:
CA:TRUE
Signature Algorithm: md5WithRSAEncryption
8e:8f:5b:6a:a4:5c:78:63:da:66:42:96:9b:c7:85:4a:8a:1a:
fd:be:5c:8a:7c:f7:bf:ba:8a:c5:92:a6:2a:1b:23:66:1c:85:
9d:ee:c1:5c:2a:98:ba:6b:73:83:27:00:81:79:0a:cc:bc:9e:
c8:bf:d1:ba:55:ed:75:ed:68:b9:b0:88:7c:09:73:12:10:f7:
86:9d:4c:05:b2:78:fc:fc:3b:23:a8:b1:c9:fd:64:92:b7:fb:
f9:a2:77:fc:a4:01:66:b7:25:5c:ad:5a:1b:28:e7:40:a3:90:
13:65:c7:19:ec:14:7f:e3:ae:93:ab:fb:07:e4:eb:11:18:af:
64:5d
—–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—–
|
以上で、Solaris 10を使用したOpenSSLの認証局の構築は終わりです。
次回は、Sun Java System Web Server 7.0のサーバ証明書を作成する方法を紹介します。
Entry filed under: Application Server/GlassFish. Tags: クライアント認証, OpenSSL, Web Server.