Recent Posts

RSS Feeds

1. OpenSSLでクライアント認証「認証局(CA)構築編」

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のサーバ証明書を作成する方法を紹介します。

Permalink     No Comments
Track Back :




Post a Comment:
Comments are closed for this entry.