2011-02-21 09:30 PM
ACE: SSL の基本設定で紹介されているように、ACE はServer 証明書を import することで、SSL 通信の暗号化/復号化を行うことが可能です。 ACE: SSL の基本設定 では、root 証明書と server 証明書のみの環境における設定例を紹介していますが、実際には中間証明書を使用する環境が多数存在します。
ここでは中間証明書の設定方法、及び、設定時の注意点について紹介します。
今回は、ACE4710 の user context 上で設定しています。 ACE module を用いた場合や admin context で設定した場合も同様です。
また、下記 file 名の証明書をあらかじめ import しています。(import 方法は、ACE: SSL の基本設定 をご参照ください。 Root 証明書は client に install されていることを想定しているため、ACE には import していません。)
Root 証明書 -> 中間証明書(2階層目) -> 中間証明書(3階層目) -> Server 証明書
(rootCAcert.pem) (interCA1cert.pem) (interCA2cert.pem) (server1cert.pem)
ACE4710a-yushimaz/Admin# changeto c3 ACE4710a-yushimaz/c3# sh run Generating configuration.... crypto chaingroup ssl_chain cert interCA2cert.pem cert interCA1cert.pem access-list all line 8 extended permit ip any any rserver host sv1 ip address 192.168.78.1 inservice rserver host sv2 ip address 192.168.78.2 inservice serverfarm host sf rserver sv1 80 inservice rserver sv2 80 inservice ssl-proxy service ssl key server1key.pem cert server1cert.pem chaingroup ssl_chain class-map match-all vip-ssl 2 match virtual-address 192.168.77.100 tcp eq https policy-map type loadbalance first-match lb class class-default serverfarm sf policy-map multi-match client-vips class vip-ssl loadbalance vip inservice loadbalance policy lb loadbalance vip icmp-reply ssl-proxy server ssl access-group input all interface vlan 100 ip address 1.164.73.50 255.0.0.0 no shutdown interface vlan 777 ip address 192.168.77.200 255.255.255.0 service-policy input client-vips no shutdown interface vlan 778 ip address 192.168.78.200 255.255.255.0 no shutdown ACE4710a-yushimaz/c3# |
sv777-1:~# openssl s_client -connect 192.168.77.100:443 -CAfile rootCAcert.pem !___ client から vip 宛てに access CONNECTED(00000003) depth=3 /C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_rootCA/CN=yushimaz/emailAddress=yushimaz@cisco.com verify return:1 depth=2 /C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA1/CN=yushimaz/emailAddress=yushimaz@cisco.com verify return:1 depth=1 /C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA2/CN=yushimaz/emailAddress=yushimaz@cisco.com verify return:1 depth=0 /C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_server/CN=yushimaz/emailAddress=yushimaz@cisco.com verify return:1 --- Certificate chain 0 s:/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_server/CN=yushimaz/emailAddress=yushimaz@cisco.com i:/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA2/CN=yushimaz/emailAddress=yushimaz@cisco.com 1 s:/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA2/CN=yushimaz/emailAddress=yushimaz@cisco.com i:/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA1/CN=yushimaz/emailAddress=yushimaz@cisco.com 2 s:/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA1/CN=yushimaz/emailAddress=yushimaz@cisco.com i:/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_rootCA/CN=yushimaz/emailAddress=yushimaz@cisco.com --- Server certificate -----BEGIN CERTIFICATE----- MIICkTCCAfoCCQChH548XcVhuTANBgkqhkiG9w0BAQUFADCBjTELMAkGA1UEBhMC SlAxDjAMBgNVBAgTBVRva3lvMREwDwYDVQQHEwhTaGluanVrdTEOMAwGA1UEChMF Y2lzY28xFTATBgNVBAsUDFRBQ19pbnRlckNBMjERMA8GA1UEAxMIeXVzaGltYXox ITAfBgkqhkiG9w0BCQEWEnl1c2hpbWF6QGNpc2NvLmNvbTAeFw0xMTAyMjEwMjA3 MzVaFw0xMTAzMjMwMjA3MzVaMIGLMQswCQYDVQQGEwJKUDEOMAwGA1UECBMFVG9r eW8xETAPBgNVBAcTCFNoaW5qdWt1MQ4wDAYDVQQKEwVjaXNjbzETMBEGA1UECxQK VEFDX3NlcnZlcjERMA8GA1UEAxMIeXVzaGltYXoxITAfBgkqhkiG9w0BCQEWEnl1 c2hpbWF6QGNpc2NvLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAmUEB c75YztlSdh+6f84XXYnFR0CXzYvB3QhUMHVAro/H1yajgA6XBMtgUgSdUYPw8KmJ uXiYfhC/ewpDJoOjIdUYZZeWLFEW00JcS7ySKLZ5qGEAKXjdZg7JOO+6yvbodN67 79KQxYpTtV/hS0oWftqE0lt0J0hsv30SRX0PM0UCAwEAATANBgkqhkiG9w0BAQUF AAOBgQCUYO84rXjjtEtFVAY6vF1lZkU5l7y00o5EivQxlTcfWPUKy/d3wvMk6y2z a4D2/mECaQ8roxrMLjmulNq6LlnatuM5o5hVReG8P5XxY5tmuI06APDX0cjm7hui HIWpxHjdObhkPjg0dawbCW7nrZ5AsbdDOpYkIRrvHJitWMsdVQ== -----END CERTIFICATE----- subject=/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_server/CN=yushimaz/emailAddress=yushimaz@cisco.com issuer=/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA2/CN=yushimaz/emailAddress=yushimaz@cisco.com --- No client certificate CA names sent --- SSL handshake has read 2639 bytes and written 300 bytes --- New, TLSv1/SSLv3, Cipher is RC4-MD5 Server public key is 1024 bit Compression: NONE Expansion: NONE SSL-Session: Protocol : TLSv1 Cipher : RC4-MD5 Session-ID: Session-ID-ctx: Master-Key: 3DF8AC5BCAAA06129AA4134106AE6AC9F14D14FB6600F3CBB79C5DA0184D5616E5194C7C206131F2F517A44B2FDC43AD Key-Arg : None Start Time: 1298258877 Timeout : 300 (sec) Verify return code: 0 (ok) --- GET / HTTP/1.0 HTTP/1.1 200 OK Date: Mon, 21 Feb 2011 03:28:02 GMT Server: Apache/1.3.34 (Debian) Last-Modified: Tue, 07 Aug 2007 20:44:47 GMT ETag: "2a27ba-148a-46b8d9bf" Accept-Ranges: bytes Content-Length: 5258 Connection: close Content-Type: text/html; charset=iso-8859-1 [snip] |
中間証明書を設定するといっても、chaingroup に中間証明書を設定し、その設定を ssl-proxy service に適用するだけなのですが、注意して設定を行わないと、特定携帯電話において SSL 通信ができないという現象が発生します。
一般に使用されている PC 用のブラウザでは特に問題が発生しないのですが、一部携帯端末では、証明書の順番が異なっていたり、不必要な証明書が存在する場合に Error となってしまいます。
過去には、chaingroup に設定してある中間証明書の順番が入れ替わっている場合に Error になってしまったり、chaingroup に (中間証明書と共に) 誤って server 証明書を設定してしまったために Error になってしまったという事例が報告されています。
特定端末で発生する SSL 通信の問題は、設定に依存している場合があるため、まずは設定の見直しをお勧めします。
また、特定端末、一般的なブラウザの両方の通信を capture することで、どのように動作が異なるのか比較できるため Troubleshooting に役立ちます。
携帯端末によっては chingroup の順番に注意が必要となることは Managing Certificates and Keys に、下記のように記載されています。
Typically, it is not necessary to add the certificates to the chain group in any type of hierarchical order because the device that verifies the certificates determines the correct order. However, some mobile devices may not be able to order the certificates properly and will display an error message. In this case, you need to add the certificates to the chain group in the correct order.
ちなみに、openssl の場合、中間証明書の順番が違っていても、chaingroup に server 証明書を設定しても、下記のように return code 0 (ok) が返ってきます。 一般的なブラウザを使用しても同様に問題なく接続されます。
# 中間証明書の順番が違う
ACE4710a-yushimaz/c3# sh run Generating configuration.... crypto chaingroup ssl_chain cert interCA1cert.pem cert interCA2cert.pem |
sv777-1:~# openssl s_client -connect 192.168.77.100:443 -CAfile rootCAcert.pem CONNECTED(00000003) depth=3 /C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_rootCA/CN=yushimaz/emailAddress=yushimaz@cisco.com verify return:1 depth=2 /C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA1/CN=yushimaz/emailAddress=yushimaz@cisco.com verify return:1 depth=1 /C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA2/CN=yushimaz/emailAddress=yushimaz@cisco.com verify return:1 depth=0 /C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_server/CN=yushimaz/emailAddress=yushimaz@cisco.com verify return:1 --- Certificate chain 0 s:/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_server/CN=yushimaz/emailAddress=yushimaz@cisco.com i:/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA2/CN=yushimaz/emailAddress=yushimaz@cisco.com 1 s:/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA1/CN=yushimaz/emailAddress=yushimaz@cisco.com i:/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_rootCA/CN=yushimaz/emailAddress=yushimaz@cisco.com 2 s:/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA2/CN=yushimaz/emailAddress=yushimaz@cisco.com i:/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA1/CN=yushimaz/emailAddress=yushimaz@cisco.com --- Server certificate -----BEGIN CERTIFICATE----- MIICkTCCAfoCCQChH548XcVhuTANBgkqhkiG9w0BAQUFADCBjTELMAkGA1UEBhMC SlAxDjAMBgNVBAgTBVRva3lvMREwDwYDVQQHEwhTaGluanVrdTEOMAwGA1UEChMF Y2lzY28xFTATBgNVBAsUDFRBQ19pbnRlckNBMjERMA8GA1UEAxMIeXVzaGltYXox ITAfBgkqhkiG9w0BCQEWEnl1c2hpbWF6QGNpc2NvLmNvbTAeFw0xMTAyMjEwMjA3 MzVaFw0xMTAzMjMwMjA3MzVaMIGLMQswCQYDVQQGEwJKUDEOMAwGA1UECBMFVG9r eW8xETAPBgNVBAcTCFNoaW5qdWt1MQ4wDAYDVQQKEwVjaXNjbzETMBEGA1UECxQK VEFDX3NlcnZlcjERMA8GA1UEAxMIeXVzaGltYXoxITAfBgkqhkiG9w0BCQEWEnl1 c2hpbWF6QGNpc2NvLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAmUEB c75YztlSdh+6f84XXYnFR0CXzYvB3QhUMHVAro/H1yajgA6XBMtgUgSdUYPw8KmJ uXiYfhC/ewpDJoOjIdUYZZeWLFEW00JcS7ySKLZ5qGEAKXjdZg7JOO+6yvbodN67 79KQxYpTtV/hS0oWftqE0lt0J0hsv30SRX0PM0UCAwEAATANBgkqhkiG9w0BAQUF AAOBgQCUYO84rXjjtEtFVAY6vF1lZkU5l7y00o5EivQxlTcfWPUKy/d3wvMk6y2z a4D2/mECaQ8roxrMLjmulNq6LlnatuM5o5hVReG8P5XxY5tmuI06APDX0cjm7hui HIWpxHjdObhkPjg0dawbCW7nrZ5AsbdDOpYkIRrvHJitWMsdVQ== -----END CERTIFICATE----- subject=/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_server/CN=yushimaz/emailAddress=yushimaz@cisco.com issuer=/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA2/CN=yushimaz/emailAddress=yushimaz@cisco.com --- No client certificate CA names sent --- SSL handshake has read 2639 bytes and written 300 bytes --- New, TLSv1/SSLv3, Cipher is RC4-MD5 Server public key is 1024 bit Compression: NONE Expansion: NONE SSL-Session: Protocol : TLSv1 Cipher : RC4-MD5 Session-ID: Session-ID-ctx: Master-Key: FD2DB425026FD539F15960D87A56103CFDAD9AB14D743620C9E9EE85177DCE29B7E12697B68EF731B3B97A8B55959AAE Key-Arg : None Start Time: 1298260768 Timeout : 300 (sec) Verify return code: 0 (ok) --- |
# chaingroup に server 証明書を追加
ACE4710a-yushimaz/c3# show run Generating configuration.... crypto chaingroup ssl_chain cert server1cert.pem cert interCA2cert.pem cert interCA1cert.pem [snip] |
sv777-1:~# openssl s_client -connect 192.168.77.100:443 -CAfile rootCAcert.pem CONNECTED(00000003) depth=3 /C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_rootCA/CN=yushimaz/emailAddress=yushimaz@cisco.com verify return:1 depth=2 /C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA1/CN=yushimaz/emailAddress=yushimaz@cisco.com verify return:1 depth=1 /C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA2/CN=yushimaz/emailAddress=yushimaz@cisco.com verify return:1 depth=0 /C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_server/CN=yushimaz/emailAddress=yushimaz@cisco.com verify return:1 --- Certificate chain 0 s:/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_server/CN=yushimaz/emailAddress=yushimaz@cisco.com i:/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA2/CN=yushimaz/emailAddress=yushimaz@cisco.com 1 s:/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_server/CN=yushimaz/emailAddress=yushimaz@cisco.com i:/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA2/CN=yushimaz/emailAddress=yushimaz@cisco.com 2 s:/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA2/CN=yushimaz/emailAddress=yushimaz@cisco.com i:/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA1/CN=yushimaz/emailAddress=yushimaz@cisco.com 3 s:/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA1/CN=yushimaz/emailAddress=yushimaz@cisco.com i:/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_rootCA/CN=yushimaz/emailAddress=yushimaz@cisco.com --- Server certificate -----BEGIN CERTIFICATE----- MIICkTCCAfoCCQChH548XcVhuTANBgkqhkiG9w0BAQUFADCBjTELMAkGA1UEBhMC SlAxDjAMBgNVBAgTBVRva3lvMREwDwYDVQQHEwhTaGluanVrdTEOMAwGA1UEChMF Y2lzY28xFTATBgNVBAsUDFRBQ19pbnRlckNBMjERMA8GA1UEAxMIeXVzaGltYXox ITAfBgkqhkiG9w0BCQEWEnl1c2hpbWF6QGNpc2NvLmNvbTAeFw0xMTAyMjEwMjA3 MzVaFw0xMTAzMjMwMjA3MzVaMIGLMQswCQYDVQQGEwJKUDEOMAwGA1UECBMFVG9r eW8xETAPBgNVBAcTCFNoaW5qdWt1MQ4wDAYDVQQKEwVjaXNjbzETMBEGA1UECxQK VEFDX3NlcnZlcjERMA8GA1UEAxMIeXVzaGltYXoxITAfBgkqhkiG9w0BCQEWEnl1 c2hpbWF6QGNpc2NvLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAmUEB c75YztlSdh+6f84XXYnFR0CXzYvB3QhUMHVAro/H1yajgA6XBMtgUgSdUYPw8KmJ uXiYfhC/ewpDJoOjIdUYZZeWLFEW00JcS7ySKLZ5qGEAKXjdZg7JOO+6yvbodN67 79KQxYpTtV/hS0oWftqE0lt0J0hsv30SRX0PM0UCAwEAATANBgkqhkiG9w0BAQUF AAOBgQCUYO84rXjjtEtFVAY6vF1lZkU5l7y00o5EivQxlTcfWPUKy/d3wvMk6y2z a4D2/mECaQ8roxrMLjmulNq6LlnatuM5o5hVReG8P5XxY5tmuI06APDX0cjm7hui HIWpxHjdObhkPjg0dawbCW7nrZ5AsbdDOpYkIRrvHJitWMsdVQ== -----END CERTIFICATE----- subject=/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_server/CN=yushimaz/emailAddress=yushimaz@cisco.com issuer=/C=JP/ST=Tokyo/L=Shinjuku/O=cisco/OU=TAC_interCA2/CN=yushimaz/emailAddress=yushimaz@cisco.com --- No client certificate CA names sent --- SSL handshake has read 3303 bytes and written 300 bytes --- New, TLSv1/SSLv3, Cipher is RC4-MD5 Server public key is 1024 bit Compression: NONE Expansion: NONE SSL-Session: Protocol : TLSv1 Cipher : RC4-MD5 Session-ID: Session-ID-ctx: Master-Key: 81D1E865BB616E39412BEDB108C84B74BBC4307C6C37B76F793B237F683B63EF9E58E1620C58DDFAB5A162DB15498290 Key-Arg : None Start Time: 1298260518 Timeout : 300 (sec) Verify return code: 0 (ok) --- |
検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう
シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします
下記より関連するコンテンツにアクセスできます