過去のナビゲーションリンクのスキップSecure Global Desktop 4.40 管理者ガイド > セキュリティー > SGD セキュリティーサービスと X.509 証明書

SGD セキュリティーサービスと X.509 証明書

X.509 証明書は、エンコードされたファイルであり、Web サーバーなどのセキュアサービスがクライアントにそのサービス自体を特定するのに使用されます。また、セキュリティーサービスを使用可能な SGD サーバーも、同じ方法で証明書を要求します。

X.509 証明書は、認証局 (CA) により生成されます。CA は、特定のサーバー用の証明書を発行する信頼できるサードパーティーです。サーバー用の証明書を取得するには、証明書発行要求 (CSR) を CA に送信します。CA は CSR を受信すると、要求の有効性を検証して、X.509 証明書を返送します。次に、SGD が証明書を使用できるように、X.509 証明書をインストールします。

このページで説明する内容は、次のとおりです。

サポートされる X.509 証明書の形式

SGD セキュリティーサービスは、Base 64 エンコードの PEM 形式 X.509 証明書をサポートします。このような証明書は、次のような構造になっています。

過去の書式設定済みテキストのスキップ-----BEGIN CERTIFICATE-----
...
certificate
...
-----END CERTIFICATE-----

サポートされる認証局の証明書

SGD は、次の認証局 (CA) 証明書 (ルート証明書) を使って署名された X.509 証明書をサポートします。

ほかの CA から取得した X.509 を使用することもできます。ただし、このような証明書は SGD により有効性が検証されていないので、デフォルトでは、すべてのユーザーが証明書を承認するか拒否するかの確認を要求されます。詳細は、「ユーザーへの確認要求と X.509 証明書」を参照してください。追加の設定を行うことにより、新しい CA のサポートを追加したり、中間 CA が X.509 証明書に署名している場合のサポートを追加したりして、ユーザーが確認を要求されずに、証明書の有効性が検証されるようにできます。

X.509 証明書の取得とインストール

次に示す手順を実行して、SGD セキュリティーサービスで使用する X.509 証明書を取得して、インストールします。Web サーバーなど、他のアプリケーション用の X.509 証明書がすでにある場合、その証明書を SGD サーバーと共有することができます。

SGD サーバーで複数の外部 DNS 名機能を使用している場合は、SGD サーバーで使用するすべての DNS 名のリストを所有している必要があります。SGD では、X.509 証明書のサブジェクト代替名 (subjectAlternativeName) 拡張をサポートしています。したがって、複数の DNS 名を X.509 証明書に関連付けることができます。

  1. SGD ホストにスーパーユーザー (root) としてログインします。
  2. 証明書発行要求 (CSR) を生成します。
    1. tarantella security certrequest を使って CSR を生成します。次に例を示します。
      過去のコマンド構文またはプログラムコードのスキップ# tarantella security certrequest \
        --country US \
        --state Massachusetts \
        --orgname "Indigo Insurance" 

      次のメッセージが表示されます。

      過去の書式設定済みテキストのスキップThe host name to be used in the certificate request is boston.indigo-insurance.com.
      
      Do you want to use this hostname? [yes]

      SGD サーバーが複数の外部 DNS 名で設定されている場合、リスト内の最初の DNS 名がデフォルトで使用されます。

    2. デフォルトのホスト名をそのまま使用するか、変更します。

      デフォルトのホスト名をそのまま使用する場合、y と入力します。

      デフォルトのホスト名を変更する場合、n と入力します。

      過去の書式設定済みテキストのスキップDo you want to use this hostname? [yes] n
      Enter the fully qualified hostname [boston.indigo-insurance.com] www.indigo-insurance.com

      次のメッセージが表示されます。

      過去の書式設定済みテキストのスキップDo you want to add any additional hostnames? [no]

      CSR に別のホスト名を追加しない場合は、Return キーを押します。

    3. (省略可能) CSR に別のホスト名を追加します。

      y と入力し、証明書のサブジェクト代替名を入力します。

      名前を入力するたびに、Return キーを押します。

      別のホスト名の入力を終了するには、Return キーを 2 回押します。

      過去の書式設定済みテキストのスキップDo you want to add any additional hostnames? [no] y
      
      Type in the subject alternative names for the certificate, one per line. Enter a blank line to finish.
      
      subjectAltName: boston.indigo-insurance.com
      subjectAltName:
  3. CSR を サポートされている認証局宛に送信します。
  4. 返信が送られてきた証明書をテンポラリファイルにコピーしてから、インストールします。

    証明書をテンポラリファイルに保存します (例: /tmp/cert)。

    次のコマンドを実行して、証明書をインストールします。

    過去のコマンド構文またはプログラムコードのスキップ# tarantella security certuse < /tmp/cert 
  5. SGD サーバーを再起動します。
  6. SGD サーバーへのセキュア接続を有効にします。

    tarantella security start コマンドを使用します。

別の製品用の X.509 証明書を SGD で使用する

元々、別の製品 (Web サーバーなど) 用として取得した X.509 証明書を SGD で使うには、その証明書の非公開キーにアクセスする必要があります。非公開キーの当初の暗号化に、SSLeay または OpenSSL 証明書ライブラリを使用する製品が利用されている場合は、この暗号化を解除することで非公開キーを入手できます。

非公開キーにアクセスできない場合、またはそのキーが SSLeay または OpenSSL 証明書ライブラリを使用する製品によって暗号化されていない場合は、サーバーごとに異なる X.509 証明書を取得してインストールする必要があります。

非公開キーを暗号化して X.509 証明書をインストールするには、次の手順を実行します。

  1. スーパーユーザー (root) としてログインします。
  2. X.509 証明書とキーファイルを root ユーザーだけがアクセスできる安全な場所にコピーします。

    次に例を示します。

    過去のコマンド構文またはプログラムコードのスキップ# cp /usr/local/apache/certs/boston.indigo-insurance.com.pem /opt/tarantella/var/tsp/
    # cp /usr/local/apache/certs/boston.indigo-insurance.com.key.pem /opt/tarantella/var/tsp/
  3. X.509 証明書のキーを暗号解除します。

    tarantella security decryptkey を使用します。次に例を示します。

    過去のコマンド構文またはプログラムコードのスキップ# tarantella security decryptkey  \
      --enckey /opt/tarantella/var/tsp/boston.indigo-insurance.com.key.pem \
      --deckey /opt/tarantella/var/tsp/boston.indigo-insurance.com.key.out \
      --format PEM
  4. 暗号解除したキーファイルを使って X.509 証明書をインストールします。

    tarantella security certuse コマンドを使って、復号化したキーファイルを使用して X.509 証明書をインストールします。たとえば、次のようにします。

    過去のコマンド構文またはプログラムコードのスキップ# tarantella security certuse
      --certfile /opt/tarantella/var/tsp/boston.indigo-insurance.com.pem
      --keyfile /opt/tarantella/var/tsp/boston.indigo-insurance.com.key.out
  5. SGD サーバーを再起動します。
  6. SGD サーバーへのセキュア接続を有効にします。

    tarantella security start コマンドを使用します。

X.509 証明書は、各 SGD サーバーの /opt/tarantella/var/tsp ディレクトリに格納されます。

追加の認証局をサポートする

デフォルトでは、SGD は、いくつかの認証局をサポートしています。仕様外の設定が含まれていない場合、サポートしていない認証局 (CA) からの Base 64 でエンコードされた PEM 形式の X.509 証明書を使用できますが、その証明書の有効性は検証されず、ユーザーは証明書を承認するか拒否するかの確認を要求されます。これは、セキュリティーに対する潜在的な危険です。

追加の CA をサポートし、証明書を検証できるようにするには、その CA の証明書 (またはルート証明書) をインストールする必要があります。中間 CA が X.509 証明書に署名している場合は、証明書チェーンを作成してインストールする必要があります。

次の方法で、CA 証明書 (ルート証明書) をインストールします。

  1. SGD ホストにスーパーユーザー (root) としてログインします。
  2. CA の証明書 (ルート証明書) をインストールします。

    次のコマンドを使用します。

    過去のコマンド構文またはプログラムコードのスキップ# tarantella security customca

    PEM 形式のルート証明書を標準入力にペーストします。

  3. X.509 証明書をユーザーのクライアントデバイスにインストールします。

    サポートしていない CA が X.509 証明書を発行している場合は、ユーザーがサーバーに最初に接続するときに、Sun Secure Global Desktop Client から常に証明書の確認を求められます。ユーザーが証明書を永続的に承認した場合は、それ以降は証明書の確認が求められることはありません。ユーザーが証明書の確認を求められないようにするには、次のようにする必要があります。

    1. サーバー証明書をクライアントデバイスの certstore.pem ファイルに追加します。証明書は各ホストの /opt/tarantella/var/tsp/cert.pem ファイルにあります。certstore.pem ファイルは、ユーザーのクライアントプロファイルキャッシュと同じ場所に保存されます。
    2. ホスト名と証明書のフィンガプリントをクライアントデバイスの hostsvisited ファイルに追加します。これらの詳細を取得するには、各ホスト上で tarantella security fingerprint コマンドを使用します。hostsvisited ファイルは、ユーザーのクライアントプロファイルキャッシュと同じ場所に保存されます。
  4. SGD サーバーを再起動します。
  5. SGD サーバーへのセキュア接続を有効にします。

    tarantella security start コマンドを使用します。

連結された認証局の証明書を使用する

チェーニングを使うと、複数の中間認証局を使用することができます。たとえば、X.509 サーバー証明書は、ある中間認証局によって発行され、その中間認証局自体の証明書は別の認証局によって発行されることがあります。

この方法で発行された X.509 サーバー証明書を SGD と一緒に使用できます。ただし、チェーン内のすべてのリンク用の証明書を連結してからインストールする必要があります。次の手順を実行します。

  1. スーパーユーザー (root) としてログインします。
  2. チェーン内のすべての証明書を結合して 1 つのファイルにします。

    たとえば、mychainedcerts.pem という名前のファイルを作成します。

    X.509 証明書の署名に使う CA の証明書は、先頭に格納する必要があります。次に例を示します。

    過去の書式設定済みテキストのスキップ-----BEGIN CERTIFICATE-----
    ...
    Intermediate CA's certificate
    ...
    -----END CERTIFICATE-----
    
    -----BEGIN CERTIFICATE-----
    ...
    CA root certificate
    ...
    -----END CERTIFICATE-----
  3. 証明書チェーンをインストールします。

    次のコマンドを使用します。

    過去のコマンド構文またはプログラムコードのスキップ# tarantella security customca --rootfile mychainedcerts.pem
  4. SGD サーバーを再起動します。
  5. SGD サーバーへのセキュア接続を有効にします。

    tarantella security start コマンドを使用します。

チェーン内の証明書が破壊されている場合や、証明書が無効な場合、ユーザーが SGD にログインしようとすると「権限の証明書が認識されません」というメッセージが表示されて、アクセスを拒否されます。

SGD サーバーの X.509 証明書を SGD Web Server と共有する

SGD Web Server はセキュア (HTTPS) Web サーバーとしてあらかじめ設定されており、SGD サーバーと同じ X.509 証明書を使用します。これは、Apache の構成ファイル /opt/tarantella/webserver/apache/apache_version/conf/httpd.conf 内で設定されています。

SGD Web Server への HTTPS 接続の有効化の詳細については、「クライアントデバイスと SGD サーバー間の接続の保護」を参照してください。

関連トピック